Создал комманду востановления из бэкапа, ее построитель и ручной тест
This commit is contained in:
parent
8c0c1d1c43
commit
10a41bf1db
|
|
@ -0,0 +1,25 @@
|
|||
from commands.RestoreBackupCommand import RestoreBackupCommand
|
||||
from parser.BackupParser.RestoreBackupParser import RestoreBackupParser
|
||||
|
||||
|
||||
class RestoreBackupCommandBuilder:
|
||||
def __init__(self, pathProvider):
|
||||
assert pathProvider is not None
|
||||
self.__pathProvider = pathProvider
|
||||
|
||||
def isRestoreBackup(self, line):
|
||||
assert line is not None
|
||||
|
||||
parser = RestoreBackupParser()
|
||||
isValid = parser.isValidLine(line)
|
||||
|
||||
return isValid
|
||||
|
||||
def getCommandFor(self, line):
|
||||
assert line is not None
|
||||
|
||||
parser = RestoreBackupParser()
|
||||
parser.parseLine(line)
|
||||
|
||||
command = RestoreBackupCommand(self.__pathProvider)
|
||||
return command
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
from CommandBuilders.RestoreBackupCommandBuilder import RestoreBackupCommandBuilder
|
||||
from ManualTests.path_provider import PathProvider
|
||||
|
||||
line = "restore from backup"
|
||||
|
||||
baseDir = '../'
|
||||
path_provider = PathProvider(baseDir)
|
||||
|
||||
builder = RestoreBackupCommandBuilder(path_provider)
|
||||
command = builder.getCommandFor(line)
|
||||
|
||||
command.execute()
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
class RestoreBackupCommand:
|
||||
def __init__(self, pathProvider):
|
||||
assert pathProvider is not None
|
||||
|
||||
self.__pathProvider = pathProvider
|
||||
|
||||
def execute(self):
|
||||
baseDir = self.__pathProvider.resolveAbsPath('.')
|
||||
|
||||
dirPairs = [(name, "backup.{0}".format(name)) for name in os.listdir(baseDir) if os.path.isdir(self.__pathProvider.resolveAbsPath(name)) and not name.startswith('backup.')]
|
||||
|
||||
for pair in dirPairs:
|
||||
if not os.path.exists(pair[1]):
|
||||
continue
|
||||
|
||||
shutil.rmtree(pair[0]) # delete src
|
||||
shutil.copytree(pair[1], pair[0]) # restore from backup
|
||||
Loading…
Reference in New Issue