From fa542158c88c26fca3d9c56bbe2e506068ff46fd Mon Sep 17 00:00:00 2001 From: Rustam Zaitov Date: Tue, 29 Oct 2013 02:50:01 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=83?= =?UTF-8?q?=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B1?= =?UTF-8?q?=D1=8D=D0=BA=D0=B0=D0=BF=D0=B0=20=D0=B8=20=D0=B5=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=80=D0=BE=D0=B8=D1=82=D0=B5=D0=BB=D1=8C,?= =?UTF-8?q?=20=D0=B0=20=D1=82=D0=B0=D0=BA=D0=B6=D0=B5=20=D1=80=D1=83=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateBackupCommandBuilder.py | 24 +++++++++++++++++++ scripts/ManualTests/create_backup_test.py | 12 ++++++++++ scripts/commands/CreateBackupCommand.py | 16 +++++++++++++ .../BackupParser/CreateBackupArguments.py | 8 +++++++ scripts/run_manual_tests.py | 4 +++- 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 scripts/CommandBuilders/CreateBackupCommandBuilder.py create mode 100644 scripts/ManualTests/create_backup_test.py create mode 100644 scripts/commands/CreateBackupCommand.py diff --git a/scripts/CommandBuilders/CreateBackupCommandBuilder.py b/scripts/CommandBuilders/CreateBackupCommandBuilder.py new file mode 100644 index 0000000..f1f7f17 --- /dev/null +++ b/scripts/CommandBuilders/CreateBackupCommandBuilder.py @@ -0,0 +1,24 @@ +from commands.CreateBackupCommand import CreateBackupCommand +from parser.BackupParser.CreateBackupParser import CreateBackupParser + + +class CreateBackupCommandBuilder: + def __init__(self, pathProvider): + assert pathProvider is not None + + self.__pathProvider = pathProvider + + def isCreateBackup(self, line): + assert line is not None + + parser = CreateBackupParser() + return parser.isValidLine(line) + + def getCommandFor(self, line): + assert line is not None + + parser = CreateBackupParser() + backupArguments = parser.parseLine(line) + + command = CreateBackupCommand(self.__pathProvider, backupArguments) + return command diff --git a/scripts/ManualTests/create_backup_test.py b/scripts/ManualTests/create_backup_test.py new file mode 100644 index 0000000..8362787 --- /dev/null +++ b/scripts/ManualTests/create_backup_test.py @@ -0,0 +1,12 @@ +from CommandBuilders.CreateBackupCommandBuilder import CreateBackupCommandBuilder +from ManualTests.path_provider import PathProvider + +line = "create backup for 'BuildSample'" + +baseDir = '../' +path_provider = PathProvider(baseDir) + +cmdBuilder = CreateBackupCommandBuilder(path_provider) +command = cmdBuilder.getCommandFor(line) + +command.execute() \ No newline at end of file diff --git a/scripts/commands/CreateBackupCommand.py b/scripts/commands/CreateBackupCommand.py new file mode 100644 index 0000000..59d5ab9 --- /dev/null +++ b/scripts/commands/CreateBackupCommand.py @@ -0,0 +1,16 @@ +import shutil + +class CreateBackupCommand: + def __init__(self, pathProvider, createBackupArguments): + assert pathProvider is not None + assert createBackupArguments is not None + + self.__pathProvider = pathProvider + self.__createBackupArguments = createBackupArguments + + def execute(self): + src = self.__pathProvider.resolveAbsPath(self.__createBackupArguments.getSourceFolderName()) + dst = self.__pathProvider.resolveAbsPath(self.__createBackupArguments.getBackupFolderName()) + + shutil.rmtree(dst, ignore_errors=True) + shutil.copytree(src, dst, symlinks=False) diff --git a/scripts/parser/BackupParser/CreateBackupArguments.py b/scripts/parser/BackupParser/CreateBackupArguments.py index 0a43b19..fbeea2b 100644 --- a/scripts/parser/BackupParser/CreateBackupArguments.py +++ b/scripts/parser/BackupParser/CreateBackupArguments.py @@ -1,3 +1,11 @@ class CreateBackupArguments: def __init__(self): self.folderName = None + + def getSourceFolderName(self): + return self.folderName + + def getBackupFolderName(self): + return "backup.{0}".format(self.folderName) + + diff --git a/scripts/run_manual_tests.py b/scripts/run_manual_tests.py index dab7faf..d37be40 100644 --- a/scripts/run_manual_tests.py +++ b/scripts/run_manual_tests.py @@ -1,3 +1,5 @@ #import ManualTests.csproj_test #import ManualTests.info_plist_test -import ManualTests.copy_test \ No newline at end of file +#import ManualTests.copy_test + +import ManualTests.create_backup_test \ No newline at end of file