def test_can_run_with_complete_file(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() task = DataImportTask(temp_dir, params) task.create_dir() open(os.path.join(task.get_dir(), D3RTask.COMPLETE_FILE), 'a').close() self.assertEquals(task.can_run(), False) self.assertEquals(task.get_error(), None) self.assertEquals(task._can_run, False) finally: shutil.rmtree(temp_dir)
def test_can_run_does_not_exist_or_error(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() task = DataImportTask(temp_dir, params) # no make blast db self.assertEquals(task.can_run(), False) self.assertEquals(task.get_error(), 'makeblastdb task has notfound status') self.assertEquals(task._can_run, False) make_blast = MakeBlastDBTask(temp_dir, params) make_blast.create_dir() # make blast db failed err_file = os.path.join(make_blast.get_dir(), D3RTask.ERROR_FILE) open(err_file, 'a').close() self.assertEquals(task.can_run(), False) self.assertEquals(task.get_error(), 'makeblastdb task has error status') self.assertEquals(task._can_run, False) os.remove(err_file) # make blast db success open(os.path.join(make_blast.get_dir(), D3RTask.COMPLETE_FILE), 'a').close() self.assertEquals(task.can_run(), True) self.assertEquals(task.get_error(), None) self.assertEquals(task._can_run, True) task.create_dir() open(os.path.join(task.get_dir(), D3RTask.ERROR_FILE), 'a').close() self.assertEquals(task.can_run(), False) self.assertEquals(task._can_run, False) self.assertEquals( task.get_error(), task.get_dir_name() + ' already exists and ' + 'status is ' + D3RTask.ERROR_STATUS) finally: shutil.rmtree(temp_dir)
def test_can_run(self): tempDir = tempfile.mkdtemp() try: # try where makeblastdb is not complete params = D3RParameters() blastTask = BlastNFilterTask(tempDir, params) self.assertEqual(blastTask.can_run(), False) # try where makeblastdb failed blastDb = MakeBlastDBTask(tempDir, params) blastDb.create_dir() errorFile = os.path.join(blastDb.get_path(), blastDb.get_dir_name(), D3RTask.ERROR_FILE) open(errorFile, 'a').close() self.assertEqual(blastTask.can_run(), False) self.assertEqual(blastTask.get_error(), 'makeblastdb task has error status') # try where data import is not complete completeFile = os.path.join(blastDb.get_path(), blastDb.get_dir_name(), D3RTask.COMPLETE_FILE) open(completeFile, 'a').close() self.assertEqual(blastTask.can_run(), False) self.assertEqual(blastTask.get_error(), 'dataimport task has ' + 'notfound status') # try where data import failed dataImport = DataImportTask(tempDir, params) dataImport.create_dir() errorFile = os.path.join(dataImport.get_path(), dataImport.get_dir_name(), D3RTask.ERROR_FILE) open(errorFile, 'a').close() self.assertEqual(blastTask.can_run(), False) self.assertEqual(blastTask.get_error(), 'dataimport task has error status') # try where blast can run os.remove(errorFile) completeFile = os.path.join(dataImport.get_dir(), D3RTask.COMPLETE_FILE) open(completeFile, 'a').close() self.assertEqual(blastTask.can_run(), True) self.assertEqual(blastTask.get_error(), None) # try where blast exists blastTask.create_dir() self.assertEqual(blastTask.can_run(), False) self.assertEqual( blastTask.get_error(), blastTask.get_dir_name() + ' already exists and' + ' status is unknown') # try where blast is complete completeFile = os.path.join(blastTask.get_path(), blastTask.get_dir_name(), D3RTask.COMPLETE_FILE) open(completeFile, 'a').close() self.assertEqual(blastTask.can_run(), False) self.assertEqual(blastTask.get_error(), None) finally: shutil.rmtree(tempDir)