def test_xml_move_missing_params(self): to_test = DataMoverServices(None, None) out = to_test.move('', '') self.assertIsNotNone(out) self.assertEqual(STATUS_REJECTED, out['status']) self.assertEqual(REASON_UNKNOWN_URL_SCHEME_2S.format('source', ''), out['reason'])
def test_xml_move_unknown_source_protocol(self): to_test = DataMoverServices(None, None) out_1 = to_test.move('type:///id', 'scp:///some/path') self.assertIsNotNone(out_1) self.assertEqual(STATUS_REJECTED, out_1['status']) self.assertEqual(REASON_UNKNOWN_URL_SCHEME_2S.format('source', 'type'), out_1['reason'])
def test_check_move_status_unknown_job(self): to_test = DataMoverServices(None, None) dest = 'scp://visualiser/some/path' source = 'ala://ala/?lsid=lsid' out = to_test.move(source, dest) id = uuid.uuid4().hex out = to_test.check_move_status(id) self.assertIsNotNone(out) self.assertEqual(STATUS_REJECTED, out['status']) self.assertEqual(REASON_JOB_DOES_NOT_EXIST, out['reason'])
def test_check_move_status(self): to_test = DataMoverServices(None, None) to_test._executor = mock.MagicMock() to_test._move_jobs = {} dest = 'scp://visualiser/some/path' source = 'ala://ala/?lsid=lsid' out = to_test.move(source, dest) self.assertIsNotNone(out) self.assertEqual(MoveJob.STATUS_PENDING, out['status']) id = to_test._move_jobs.keys()[0] out = to_test.check_move_status(id) self.assertIsNotNone(out) self.assertEqual(MoveJob.STATUS_PENDING, out['status']) self.assertEqual(id, out['id']) # job should still exists out = to_test.check_move_status(id) self.assertIsNotNone(out) self.assertEqual(MoveJob.STATUS_PENDING, out['status']) self.assertEqual(id, out['id']) # Now update the move job to complete. to_test._move_jobs[id].update(status=MoveJob.STATUS_COMPLETE) # Check that the status is updated to complete out = to_test.check_move_status(id) self.assertIsNotNone(out) self.assertEqual(MoveJob.STATUS_COMPLETE, out['status']) self.assertEqual(id, out['id']) # Do a 2nd status query, job shall not exist anymore. out = to_test.check_move_status(id) self.assertIsNotNone(out) self.assertEqual(STATUS_REJECTED, out['status']) self.assertEqual(REASON_JOB_DOES_NOT_EXIST, out['reason'])
def test_xml_move(self): to_test = DataMoverServices(None, None) to_test._executor = mock.MagicMock() to_test._move_jobs = {} dest = 'scp://visualiser/some/path' source = 'ala://ala/?lsid=lsid' move_job = MoveJob(source, dest, None, False) out = to_test.move(source, dest) self.assertIsNotNone(out) self.assertEqual(MoveJob.STATUS_PENDING, out['status']) act_move_job = to_test._move_jobs[to_test._move_jobs.keys()[0]] self.assertEqual(act_move_job.source, move_job.source) self.assertEqual(act_move_job.destination, move_job.destination) self.assertEqual(act_move_job.zip, move_job.zip) self.assertEqual(act_move_job.userid, move_job.userid) to_test._executor.submit.assert_called_with(fn=to_test._move_service.worker, move_job=act_move_job)
def test_xml_move_bad_params(self): to_test = DataMoverServices(None, None) # Build src and dest dicts dest = 'scp://some_host/some/path.txt' source_dict = 'type://host/?id=id' out_1 = to_test.move(None, source_dict) self.assertIsNotNone(out_1) self.assertEqual(STATUS_REJECTED, out_1['status']) self.assertEqual(REASON_MISSING_PARAMS_1S.format('source and destination must not be None'), out_1['reason']) out_2 = to_test.move(dest, None) self.assertIsNotNone(out_2) self.assertEqual(STATUS_REJECTED, out_2['status']) self.assertEqual(REASON_MISSING_PARAMS_1S.format('source and destination must not be None'), out_2['reason']) out_3 = to_test.move(None, None) self.assertIsNotNone(out_3) self.assertEqual(STATUS_REJECTED, out_3['status']) self.assertEqual(REASON_MISSING_PARAMS_1S.format('source and destination must not be None'), out_3['reason']) out_4 = to_test.move(source='scp://', destination=dest) self.assertIsNotNone(out_4) self.assertEqual(STATUS_REJECTED, out_4['status']) self.assertEqual(REASON_HOST_NOT_SPECIFIED_1S.format('source'), out_4['reason']) out_5 = to_test.move('scp://host', destination=dest) self.assertIsNotNone(out_5) self.assertEqual(STATUS_REJECTED, out_5['status']) self.assertEqual(REASON_PATH_NOT_SPECIFIED_1S.format('source'), out_5['reason']) out_6 = to_test.move(source='scp:///path/to/dest', destination=dest) self.assertIsNotNone(out_6) self.assertEqual(STATUS_REJECTED, out_6['status']) self.assertEqual(REASON_HOST_NOT_SPECIFIED_1S.format('source'), out_6['reason'])