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
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
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()
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()
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
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)
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()
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()
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
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
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
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
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
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
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")
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
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
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)
def test_init_positional_args(self): self.assertRaises(TypeError, lambda: transfer.MultipleFileUpload()) self.assertRaises(TypeError, lambda: transfer.MultipleFileUpload(['srcfile']))
def test_init_workersrcs_positional(self): with assertNotProducesWarnings(DeprecatedWorkerAPIWarning): step = transfer.MultipleFileUpload(['srcfile'], 'dstfile') self.assertEqual(step.workersrcs, ['srcfile'])
def test_init_workersrcs_new_api_no_warns(self): with assertNotProducesWarnings(DeprecatedWorkerAPIWarning): step = transfer.MultipleFileUpload(workersrcs=['srcfile'], masterdest='dstfile') self.assertEqual(step.workersrcs, ['srcfile'])
def test_init_positional_args(self): with self.assertRaises(TypeError): transfer.MultipleFileUpload() with self.assertRaises(TypeError): transfer.MultipleFileUpload(['srcfile'])
def test_init_workersrcs_positional(self): step = transfer.MultipleFileUpload(['srcfile'], 'dstfile') self.assertEqual(step.workersrcs, ['srcfile'])
def test_init_workersrcs_keyword(self): step = transfer.MultipleFileUpload( workersrcs=['srcfile'], masterdest='dstfile') self.assertEqual(step.workersrcs, ['srcfile'])