def test_run_fail(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() pkg = '/remote/celpp1_2017_dockedresults_yo.tar.gz' task = ExternalDataSubmissionTask(temp_dir, 'yo', pkg, params) mockft = D3RParameters() mockft.connect = Mock(side_effect=IOError('error')) mockft.download_file = Mock(return_value=True) mockft.disconnect = Mock(return_value=None) task.set_file_transfer(mockft) task.run() self.assertEqual( task.get_error(), 'Caught exception Unable to ' 'download celpp1_2017_docked' 'results_yo.tar.gz') self.assertEqual( task.get_email_log(), 'Try # 1 of 3 to download ' 'celpp1_2017_dockedresults' '_yo.tar.gz\nTry # 2 of 3 ' 'to download celpp1_2017_d' 'ockedresults_yo.tar.gz\n' 'Try # 3 of 3 to download ' 'celpp1_2017_dockedresults' '_yo.tar.gz\n') finally: shutil.rmtree(temp_dir)
def test_download_remote_challenge_data_package_with_1st_retry_false(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() pkg = '/remote/celpp1_2017_dockedresults_yo.tar.gz' task = ExternalDataSubmissionTask(temp_dir, 'yo', pkg, params) task.set_download_retry_sleep(0) task.set_download_max_retry_count(3) mockft = D3RParameters() mockft.connect = Mock() mockft.download_file = Mock() mockft.download_file.side_effect = [False, True] mockft.disconnect = Mock(return_value=None) task.set_file_transfer(mockft) c = task._download_remote_challenge_data_package_with_retry() self.assertEqual(c, 'celpp1_2017_dockedresults_yo.tar.gz') finally: shutil.rmtree(temp_dir)
def test_runtask_success(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() pkg = '/remote/celpp1_2017_dockedresults_yo.tar.gz' task = ExternalDataSubmissionTask(temp_dir, 'yo', pkg, params) mockft = D3RParameters() mockft.connect = Mock(return_value=None) mockft.download_file = Mock(return_value=True) mockft.disconnect = Mock(return_value=None) task.set_file_transfer(mockft) task.create_dir() self.create_good_tarfile(task.get_dir(), 'celpp1_2017_dockedresults_yo') task._runtask() self.assertEqual(task.get_error(), None) self.assertEqual(task.get_email_log(), '') finally: shutil.rmtree(temp_dir)
def test__download_remote_challenge_data_package_success(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() pkg = '/remote/celpp2_3.tar.gz' task = ExternalDataSubmissionTask(temp_dir, 'yo', pkg, params) task.create_dir() mockft = D3RParameters() mockft.connect = Mock(return_value=None) mockft.download_file = Mock(return_value=True) mockft.disconnect = Mock(return_value=None) task.set_file_transfer(mockft) val = task._download_remote_challenge_data_package() self.assertEqual(val, 'celpp2_3.tar.gz') localfile = os.path.join(task.get_dir(), 'celpp2_3.tar.gz') mockft.download_file.assert_called_with(pkg, localfile) mockft.connect.assert_called_with() mockft.disconnect.assert_called_with() finally: shutil.rmtree(temp_dir)
def test_download_remote_challenge_data_package_with_retry_false(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() pkg = '/remote/celpp1_2017_dockedresults_yo.tar.gz' task = ExternalDataSubmissionTask(temp_dir, 'yo', pkg, params) task.set_download_retry_sleep(0) task.set_download_max_retry_count(1) mockft = D3RParameters() mockft.connect = Mock() mockft.download_file = Mock(return_value=False) mockft.disconnect = Mock(return_value=None) task.set_file_transfer(mockft) try: task._download_remote_challenge_data_package_with_retry() except ChallengePackageDownloadError as e: self.assertEqual( str(e), 'Unable to download ' + 'celpp1_2017_dockedresults_yo.tar.gz') finally: shutil.rmtree(temp_dir)