コード例 #1
0
 def __init__(self):
     description = (
         'Simple Multi-Volume file copy tool. You will be prompted to replace device '
         'when the medium is full. (ex: multivolumecopy /path/src -o /path/dst)'
     )
     self.options = copyoptions.CopyOptions()
     self.parser = argparse.ArgumentParser(description=description)
     self._setup_parser()
コード例 #2
0
    def setup(self):
        self.options = copyoptions.CopyOptions()
        self.options.output = '/dst'
        self.options.size_unit = 'K'
        copyfiles = self.gen_copyfiles(['a.txt', 'b.txt', 'c.txt'])

        self.results = verifier.VerifyResults(copyfiles, self.options)
        self.results.device_capacity_bytes = 4096
        self.results.backup_bytes = 3000
        self.results.copied_bytes = 3072
コード例 #3
0
 def setup(self):
     # don't resolve/reconcile using real files,
     # and do not start any worker processes
     self.options = copyoptions.CopyOptions()
     self.resolver = MockResolver(self.options)
     self.reconciler = MockReconciler(self.resolver, self.options)
     self.copier = multiprocesscopier.MultiProcessCopier(self.resolver,
                                                         self.options,
                                                         self.reconciler)
     self.copier.manager = mock.Mock()
     self.copier.prompt = mock.Mock()
     self.options.output = '/dst'
コード例 #4
0
    def setup(self):
        self.copyfiles = tuple([
            copyfile.CopyFile(src='/src/0.txt', dst='/dst/0.txt',
                              relpath='0.txt', bytes=1024, index=0),
            copyfile.CopyFile(src='/src/a/1.txt', dst='/dst/a/1.txt',
                              relpath='a/1.txt', bytes=1024, index=1),
            copyfile.CopyFile(src='/src/a/2.txt', dst='/dst/a/2.txt',
                              relpath='a/2.txt', bytes=1024, index=2),
        ])
        self.resolver = mock.Mock()

        self.options = copyoptions.CopyOptions()
        self.options.output = '/dst'
コード例 #5
0
    def __init__(self, resolver, options=None):
        """
        Args:
            source (resolver.Resolver):
                Resolver, determines files to be copied.

            output (str): ``(ex: '/mnt/backup' )``
                The directory you'd like to backup to.

            options (CopyOptions, None):
                Options to use while performing copy
        """
        self._resolver = resolver
        self._options = options or copyoptions.CopyOptions()
        super(Copier, self).__init__()
コード例 #6
0
 def setup(self):
     self.joblist = [MockResolver.FILE_A]
     self.started_queue = multiprocessing.Queue()
     self.completed_queue = multiprocessing.Queue()
     self.error_queue = multiprocessing.Queue()
     self.device_full_lock = multiprocessing.Event()
     self.options = copyoptions.CopyOptions()
     self.options.output = '/dst'
     self.worker = multiprocesscopier._MultiProcessCopierWorker(
         self.joblist,
         self.started_queue,
         self.completed_queue,
         self.error_queue,
         self.device_full_lock,
         self.options,
         maxtasks=3,
     )
コード例 #7
0
 def setup(self):
     self.joblist = [MockResolver.FILE_A]
     self.started_queue = multiprocessing.Queue()
     self.completed_queue = multiprocessing.Queue()
     self.error_queue = multiprocessing.Queue()
     self.device_full_lock = multiprocessing.Lock()
     self.options = copyoptions.CopyOptions()
     self.options.output = '/dst'
     self.options.num_workers = 3
     self.manager = multiprocesscopier._MultiProcessCopierWorkerManager(
         self.joblist,
         self.started_queue,
         self.completed_queue,
         self.error_queue,
         self.device_full_lock,
         self.options
     )
コード例 #8
0
    def setup(self):
        self.options = copyoptions.CopyOptions()
        self.options.output = '/dst'

        self.resolver = directorylistresolver.DirectoryListResolver(
            ['/src'], self.options)
コード例 #9
0
 def setup(self):
     self.options = copyoptions.CopyOptions()
     self.options.dst = '/dst'
コード例 #10
0
 def test_device_padding_converted_to_bytes(self, provided_value,
                                            saved_value):
     options = copyoptions.CopyOptions()
     options.device_padding = provided_value
     assert options.device_padding == saved_value
コード例 #11
0
 def test_num_workers_defaults_to_avail_cpus_minus_one_if_multi_cpu(self):
     with mock.patch('multiprocessing.cpu_count', return_value=4):
         options = copyoptions.CopyOptions()
         assert options.num_workers == 2
コード例 #12
0
 def test_num_workers_defaults_to_one_if_only_one_cpu(self):
     with mock.patch('multiprocessing.cpu_count', return_value=1):
         options = copyoptions.CopyOptions()
         assert options.num_workers == 1
コード例 #13
0
 def setup(self):
     options = copyoptions.CopyOptions()
     options.output = '/dst'
     self.resolver = FakeResolver([], options)
     self.verifier = verifier.Verifier(self.resolver, options)