Реализовал команду создания бэкапа и ее построитель, а также ручной тест

This commit is contained in:
Rustam Zaitov 2013-10-29 02:50:01 +04:00
parent a2914ce339
commit fa542158c8
5 changed files with 63 additions and 1 deletions

View File

@ -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

View File

@ -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()

View File

@ -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)

View File

@ -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)

View File

@ -1,3 +1,5 @@
#import ManualTests.csproj_test
#import ManualTests.info_plist_test
import ManualTests.copy_test
#import ManualTests.copy_test
import ManualTests.create_backup_test