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 _get_participant_database(self): """Creates `ParticipantDatabase` :returns: ParticipantDatabase """ dimport = DataImportTask(self.get_path(), self.get_args()) csvfile = dimport.get_participant_list_csv() pfac = ParticipantDatabaseFromCSVFactory(csvfile) return pfac.get_participant_database()
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(self): temp_dir = tempfile.mkdtemp() try: fakeftp = FtpFileTransfer(None) mftp = D3RParameters() fakeftp.set_connection(mftp) fakeftp.set_remote_dir('/foo2') mftp.get = Mock() 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.set_file_transfer(fakeftp) 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) mftp.get.assert_called_with('/foo2/' + DataImportTask.PARTICIPANT_LIST_CSV, local=task.get_participant_list_csv()) finally: shutil.rmtree(temp_dir)
def test_get_participant_database_with_valid_csvfile(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() dimport = DataImportTask(temp_dir, params) dimport.create_dir() csvfile = dimport.get_participant_list_csv() f = open(csvfile, 'w') f.write('name,d3rusername,guid,email\n') f.write('joe,jj,123,[email protected]\n') f.flush() f.close() etf = EvaluationTaskFactory(temp_dir, params) pdb = etf._get_participant_database() p = pdb.get_participant_by_guid('123') self.assertEqual(p.get_email(), '*****@*****.**') finally: shutil.rmtree(temp_dir)
def test_get_external_submitter_email_participant_not_found(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() dimport = DataImportTask(temp_dir, params) dimport.create_dir() csvfile = dimport.get_participant_list_csv() f = open(csvfile, 'w') f.write('name,d3rusername,guid,email\n') f.write('joe,jj,123,[email protected]\n') f.flush() f.close() fac = ParticipantDatabaseFromCSVFactory(csvfile) params = D3RParameters() dtask = D3RTask('/foo', params) dtask.set_name('444' + EvaluationTask.EXT_SUBMISSION_SUFFIX) task = EvaluationTask(temp_dir, dtask.get_name(), dtask, params) emailer = EvaluationEmailer(fac.get_participant_database(), None) self.assertEqual(emailer._get_external_submitter_email(task), None) self.assertEqual(emailer.get_message_log(), '\nNo participant found with guid: 444\n') finally: shutil.rmtree(temp_dir)
def test_get_participant_list_csv(self): params = D3RParameters() task = DataImportTask('/foo', params) self.assertEqual( task.get_participant_list_csv(), '/foo/' + task.get_dir_name() + '/' + DataImportTask.PARTICIPANT_LIST_CSV)