Exemple #1
0
    def testEmpty(self):
        self.setupStep(
            transfer.MultipleFileUpload(workersrcs=[],
                                        masterdest=self.destdir))

        self.expectCommands()

        self.expectOutcome(result=SKIPPED, state_string="finished (skipped)")
        d = self.runStep()
        return d
Exemple #2
0
 def testFailedGlob(self):
     self.setupStep(
         transfer.MultipleFileUpload(
             workersrcs=["src*"], masterdest=self.destdir, glob=True))
     self.expectCommands(
         Expect('glob', {'path': os.path.join('wkdir', 'src*'), 'logEnviron': False})
         + Expect.update('files', [])
         + 1,
     )
     self.expectOutcome(result=SKIPPED, state_string="uploading 0 files (skipped)")
     d = self.runStep()
     return d
Exemple #3
0
    def test_not_existing_path(self):
        self.setupStep(transfer.MultipleFileUpload(workersrcs=["srcdir"], masterdest=self.destdir))

        self.expectCommands(
            Expect('stat', {'file': "srcdir", 'workdir': 'wkdir'})
            + 1)

        self.expectOutcome(result=FAILURE, state_string="uploading 1 file (failure)")
        self.expectLogfile('stderr',
                           "File wkdir/srcdir not available at worker")

        yield self.runStep()
Exemple #4
0
    def test_special_path(self):
        self.setupStep(transfer.MultipleFileUpload(workersrcs=["srcdir"], masterdest=self.destdir))

        self.expectCommands(
            Expect('stat', {'file': "srcdir", 'workdir': 'wkdir'})
            + Expect.update('stat', [0, 99, 99])
            + 0)

        self.expectOutcome(result=FAILURE, state_string="uploading 1 file (failure)")
        self.expectLogfile('stderr', 'srcdir is neither a regular file, nor a directory')

        yield self.runStep()
Exemple #5
0
 def testFailedGlob(self):
     self.setup_step(
         transfer.MultipleFileUpload(workersrcs=["src*"],
                                     masterdest=self.destdir,
                                     glob=True))
     self.expect_commands(
         ExpectGlob(path=os.path.join('wkdir', 'src*'),
                    log_environ=False).files().exit(1))
     self.expect_outcome(result=SKIPPED,
                         state_string="uploading 0 files (skipped)")
     d = self.run_step()
     return d
Exemple #6
0
    def test_workersrcs_old_api(self):
        step = transfer.MultipleFileUpload(workersrcs=['srcfile'], masterdest='dstfile')

        with assertNotProducesWarnings(DeprecatedWorkerAPIWarning):
            new = step.workersrcs

        with assertProducesWarning(
                DeprecatedWorkerNameWarning,
                message_pattern="'slavesrcs' attribute is deprecated"):
            old = step.slavesrcs

        self.assertIdentical(new, old)
Exemple #7
0
    def test_special_path(self):
        self.setup_step(
            transfer.MultipleFileUpload(workersrcs=["srcdir"],
                                        masterdest=self.destdir))

        self.expect_commands(
            ExpectStat(file='srcdir', workdir='wkdir').stat(mode=0).exit(0))

        self.expect_outcome(result=FAILURE,
                            state_string="uploading 1 file (failure)")
        self.expect_log_file(
            'stderr', 'srcdir is neither a regular file, nor a directory')

        yield self.run_step()
Exemple #8
0
    def test_not_existing_path(self):
        self.setup_step(
            transfer.MultipleFileUpload(workersrcs=["srcdir"],
                                        masterdest=self.destdir))

        self.expect_commands(
            ExpectStat(file='srcdir', workdir='wkdir').exit(1))

        self.expect_outcome(result=FAILURE,
                            state_string="uploading 1 file (failure)")
        self.expect_log_file('stderr',
                             "File wkdir/srcdir not available at worker")

        yield self.run_step()
Exemple #9
0
 def testMultipleString(self):
     self.setup_step(
         transfer.MultipleFileUpload(workersrcs="srcfile",
                                     masterdest=self.destdir))
     self.expect_commands(
         ExpectStat(file="srcfile", workdir='wkdir').stat_file().exit(0),
         ExpectUploadFile(workersrc="srcfile",
                          workdir='wkdir',
                          blocksize=16384,
                          maxsize=None,
                          keepstamp=False,
                          writer=ExpectRemoteRef(
                              remotetransfer.FileWriter)).upload_string(
                                  "Hello world!\n").exit(0))
     self.expect_outcome(result=SUCCESS, state_string="uploading 1 file")
     d = self.run_step()
     return d
Exemple #10
0
 def testMultipleString(self):
     self.setupStep(
         transfer.MultipleFileUpload(workersrcs="srcfile", masterdest=self.destdir))
     self.expectCommands(
         Expect('stat', dict(file="srcfile",
                             workdir='wkdir'))
         + Expect.update('stat', [stat.S_IFREG, 99, 99])
         + 0,
         Expect('uploadFile', dict(
             workersrc="srcfile", workdir='wkdir',
             blocksize=16384, maxsize=None, keepstamp=False,
             writer=ExpectRemoteRef(remotetransfer.FileWriter)))
         + Expect.behavior(uploadString("Hello world!"))
         + 0)
     self.expectOutcome(
         result=SUCCESS, state_string="uploading 1 file")
     d = self.runStep()
     return d
Exemple #11
0
    def testFailure(self):
        self.setupStep(
            transfer.MultipleFileUpload(workersrcs=["srcfile", "srcdir"], masterdest=self.destdir))

        self.expectCommands(
            Expect('stat', dict(file="srcfile",
                                workdir='wkdir'))
            + Expect.update('stat', [stat.S_IFREG, 99, 99])
            + 0,
            Expect('uploadFile', dict(
                slavesrc="srcfile", workdir='wkdir',
                blocksize=16384, maxsize=None, keepstamp=False,
                writer=ExpectRemoteRef(remotetransfer.FileWriter)))
            + 1)

        self.expectOutcome(
            result=FAILURE, state_string="uploading 2 files (failure)")
        d = self.runStep()
        return d
Exemple #12
0
    def testFailure(self):
        self.setup_step(
            transfer.MultipleFileUpload(workersrcs=["srcfile", "srcdir"],
                                        masterdest=self.destdir))

        self.expect_commands(
            ExpectStat(file="srcfile", workdir='wkdir').stat_file().exit(0),
            ExpectUploadFile(workersrc="srcfile",
                             workdir='wkdir',
                             blocksize=16384,
                             maxsize=None,
                             keepstamp=False,
                             writer=ExpectRemoteRef(
                                 remotetransfer.FileWriter)).exit(1))

        self.expect_outcome(result=FAILURE,
                            state_string="uploading 2 files (failure)")
        d = self.run_step()
        return d
Exemple #13
0
    def testDirectory(self):
        self.setupStep(
            transfer.MultipleFileUpload(workersrcs=["srcdir"], masterdest=self.destdir))

        self.expectCommands(
            Expect('stat', dict(file="srcdir",
                                workdir='wkdir'))
            + Expect.update('stat', [stat.S_IFDIR, 99, 99])
            + 0,
            Expect('uploadDirectory', dict(
                slavesrc="srcdir", workdir='wkdir',
                blocksize=16384, compress=None, maxsize=None,
                writer=ExpectRemoteRef(remotetransfer.DirectoryWriter)))
            + Expect.behavior(uploadTarFile('fake.tar', test="Hello world!"))
            + 0)

        self.expectOutcome(result=SUCCESS, state_string="uploading 1 file")
        d = self.runStep()
        return d
Exemple #14
0
 def testGlob(self):
     self.setup_step(
         transfer.MultipleFileUpload(workersrcs=["src*"],
                                     masterdest=self.destdir,
                                     glob=True))
     self.expect_commands(
         ExpectGlob(path=os.path.join('wkdir', 'src*'),
                    log_environ=False).files(["srcfile"]).exit(0),
         ExpectStat(file="srcfile", workdir='wkdir').stat_file().exit(0),
         ExpectUploadFile(workersrc="srcfile",
                          workdir='wkdir',
                          blocksize=16384,
                          maxsize=None,
                          keepstamp=False,
                          writer=ExpectRemoteRef(
                              remotetransfer.FileWriter)).upload_string(
                                  "Hello world!\n").exit(0))
     self.expect_outcome(result=SUCCESS, state_string="uploading 1 file")
     d = self.run_step()
     return d
Exemple #15
0
    def test_url_text(self):
        self.setupStep(transfer.MultipleFileUpload(workersrcs=["srcfile"], masterdest=self.destdir,
                                                   url="http://server/dir", urlText='url text'))

        self.step.addURL = Mock()

        self.expectCommands(
            Expect('stat', {'file': "srcfile", 'workdir': 'wkdir'})
            + Expect.update('stat', [stat.S_IFREG, 99, 99])
            + 0,
            Expect('uploadFile', {'workersrc': "srcfile", 'workdir': 'wkdir',
                                  'blocksize': 16384, 'maxsize': None, 'keepstamp': False,
                                  'writer': ExpectRemoteRef(remotetransfer.FileWriter)})
            + Expect.behavior(uploadString("Hello world!"))
            + 0)

        self.expectOutcome(result=SUCCESS,
                           state_string="uploading 1 file")

        yield self.runStep()

        self.step.addURL.assert_called_once_with("url text", "http://server/dir")
Exemple #16
0
    def testDirectoryWorker2_16(self):
        self.setup_step(transfer.MultipleFileUpload(workersrcs=["srcdir"],
                                                    masterdest=self.destdir),
                        worker_version={'*': '2.16'})

        self.expect_commands(
            ExpectStat(file="srcdir", workdir='wkdir').stat_dir().exit(0),
            ExpectUploadDirectory(
                slavesrc="srcdir",
                workdir='wkdir',
                blocksize=16384,
                compress=None,
                maxsize=None,
                writer=ExpectRemoteRef(
                    remotetransfer.DirectoryWriter)).upload_tar_file(
                        'fake.tar', {
                            "test": "Hello world!"
                        }).exit(0))

        self.expect_outcome(result=SUCCESS, state_string="uploading 1 file")
        d = self.run_step()
        return d
Exemple #17
0
 def testGlob(self):
     self.setupStep(
         transfer.MultipleFileUpload(
             workersrcs=["src*"], masterdest=self.destdir, glob=True))
     self.expectCommands(
         Expect('glob', dict(path=os.path.join('wkdir', 'src*'), logEnviron=False))
         + Expect.update('files', ["srcfile"])
         + 0,
         Expect('stat', dict(file="srcfile",
                             workdir='wkdir'))
         + Expect.update('stat', [stat.S_IFREG, 99, 99])
         + 0,
         Expect('uploadFile', dict(
             workersrc="srcfile", workdir='wkdir',
             blocksize=16384, maxsize=None, keepstamp=False,
             writer=ExpectRemoteRef(remotetransfer.FileWriter)))
         + Expect.behavior(uploadString("Hello world!"))
         + 0,
     )
     self.expectOutcome(
         result=SUCCESS, state_string="uploading 1 file")
     d = self.runStep()
     return d
Exemple #18
0
    def testException(self):
        self.setupStep(
            transfer.MultipleFileUpload(workersrcs=["srcfile", "srcdir"], masterdest=self.destdir))

        behavior = UploadError(uploadString("Hello world!"))

        self.expectCommands(
            Expect('stat', dict(file="srcfile",
                                workdir='wkdir'))
            + Expect.update('stat', [stat.S_IFREG, 99, 99])
            + 0,
            Expect('uploadFile', dict(
                workersrc="srcfile", workdir='wkdir',
                blocksize=16384, maxsize=None, keepstamp=False,
                writer=ExpectRemoteRef(remotetransfer.FileWriter)))
            + Expect.behavior(behavior))

        self.expectOutcome(
            result=EXCEPTION, state_string="uploading 2 files (exception)")
        yield self.runStep()

        self.assertEqual(behavior.writer.cancel.called, True)
        self.assertEqual(
            len(self.flushLoggedErrors(RuntimeError)), 1)
Exemple #19
0
 def test_init_positional_args(self):
     self.assertRaises(TypeError, lambda: transfer.MultipleFileUpload())
     self.assertRaises(TypeError,
                       lambda: transfer.MultipleFileUpload(['srcfile']))
Exemple #20
0
    def test_init_workersrcs_positional(self):
        with assertNotProducesWarnings(DeprecatedWorkerAPIWarning):
            step = transfer.MultipleFileUpload(['srcfile'], 'dstfile')

        self.assertEqual(step.workersrcs, ['srcfile'])
Exemple #21
0
    def test_init_workersrcs_new_api_no_warns(self):
        with assertNotProducesWarnings(DeprecatedWorkerAPIWarning):
            step = transfer.MultipleFileUpload(workersrcs=['srcfile'],
                                               masterdest='dstfile')

        self.assertEqual(step.workersrcs, ['srcfile'])
Exemple #22
0
 def test_init_positional_args(self):
     with self.assertRaises(TypeError):
         transfer.MultipleFileUpload()
     with self.assertRaises(TypeError):
         transfer.MultipleFileUpload(['srcfile'])
Exemple #23
0
    def test_init_workersrcs_positional(self):
        step = transfer.MultipleFileUpload(['srcfile'], 'dstfile')

        self.assertEqual(step.workersrcs, ['srcfile'])
Exemple #24
0
    def test_init_workersrcs_keyword(self):
        step = transfer.MultipleFileUpload(
            workersrcs=['srcfile'], masterdest='dstfile')

        self.assertEqual(step.workersrcs, ['srcfile'])