def test_download_participant_list_file_not_found(self): temp_dir = tempfile.mkdtemp() try: foo = FtpFileTransfer(None) mockftp = D3RParameters() mockftp.get = Mock() foo.set_remote_dir('/foo') foo.set_connection(mockftp) params = D3RParameters() task = DataImportTask(temp_dir, params) task.set_file_transfer(foo) task.create_dir() task._download_participant_list_csv() self.assertEqual( task.get_email_log(), '\nWARNING: participant_list.csv not downloaded ' 'which means external users will NOT get ' 'evaluation email\n') mockftp.get\ .assert_called_with('/foo/' + DataImportTask.PARTICIPANT_LIST_CSV, local=task.get_participant_list_csv()) finally: shutil.rmtree(temp_dir)
def test_download_participant_list_no_filetransfer(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() task = DataImportTask(temp_dir, params) task.create_dir() task._download_participant_list_csv() self.assertEqual( task.get_email_log(), '\nWARNING: Unable to download ' 'participant_list.csv which means ' 'external users will NOT get evaluation ' 'email : \'NoneType\' object has no attribute ' '\'connect\'\n') finally: shutil.rmtree(temp_dir)
def test_download_participant_list_success(self): temp_dir = tempfile.mkdtemp() try: foo = FtpFileTransfer(None) mockftp = D3RParameters() mockftp.get = Mock() foo.set_remote_dir('/foo') foo.set_connection(mockftp) params = D3RParameters() task = DataImportTask(temp_dir, params) task.set_file_transfer(foo) task.create_dir() open(task.get_participant_list_csv(), 'a').close() task._download_participant_list_csv() self.assertEqual(task.get_email_log(), None) mockftp.get\ .assert_called_with('/foo/' + DataImportTask.PARTICIPANT_LIST_CSV, local=task.get_participant_list_csv()) finally: shutil.rmtree(temp_dir)
def test_run_all_success_except_participant_download_fails(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() params.pdbfileurl = 'file://' + temp_dir params.compinchi = 'file://' + temp_dir make_blast = MakeBlastDBTask(temp_dir, params) make_blast.create_dir() open(os.path.join(make_blast.get_dir(), D3RTask.COMPLETE_FILE), 'a').close() task = DataImportTask(temp_dir, params) task._retrysleep = 0 open(os.path.join(temp_dir, task.NONPOLYMER_TSV), 'a').close() open(os.path.join(temp_dir, task.SEQUENCE_TSV), 'a').close() open(os.path.join(temp_dir, task.OLDSEQUENCE_TSV), 'a').close() open(os.path.join(temp_dir, task.CRYSTALPH_TSV), 'a').close() open(os.path.join(temp_dir, task.COMPINCHI_ICH), 'a').close() task.run() self.assertEquals(task.get_error(), None) # check line count is 1 now which indicates # standard was added self.assertEqual( util.get_file_line_count(task.get_nonpolymer_tsv()), 1) self.assertEqual(util.get_file_line_count(task.get_sequence_tsv()), 1) self.assertEqual( util.get_file_line_count(task.get_oldsequence_tsv()), 1) self.assertEqual( util.get_file_line_count(task.get_crystalph_tsv()), 1) self.assertTrue(task.get_email_log().startswith( '\nWARNING: Unable to download')) finally: shutil.rmtree(temp_dir)