def test_partial_directory(self): directory = path.join(path_to_module, "partial_dir") res = progress.get_directory_status(directory, ["SampleSheet.csv"]) self.assertEqual(res.status, DirectoryStatus.PARTIAL) self.assertIsNone(res.message)
def test_inaccessible_directory(self): directory = path.join(path_to_module, "inaccessible_dir") res = progress.get_directory_status(directory, ["SampleSheet.csv"]) self.assertEqual(res.status, DirectoryStatus.INVALID) self.assertIsNotNone(res.message)
def test_complete_directory(self): directory = path.join(path_to_module, "complete_dir") res = progress.get_directory_status(directory, ["SampleSheet.csv"]) self.assertEqual(res.status, DirectoryStatus.COMPLETE) self.assertIsNone(res.message)
def test_new_directory_with_info_file(self): directory = path.join(path_to_module, "new_dir_with_info_file") res = progress.get_directory_status(directory, ["SampleSheet.csv"]) self.assertEqual(res.status, DirectoryStatus.NEW) self.assertIsNone(res.message)
def test_new_directory_one_file_missing(self): directory = path.join(path_to_module, "new_dir") res = progress.get_directory_status( directory, ["SampleSheet.csv", 'not_a_file.txt']) self.assertEqual(res.status, DirectoryStatus.INVALID) self.assertIsNotNone(res.message)
def test_new_directory_multiple_files(self): directory = path.join(path_to_module, "new_dir_two_files") res = progress.get_directory_status( directory, ["SampleSheet.csv", 'CompletedJobInfo.xml']) self.assertEqual(res.status, DirectoryStatus.NEW) self.assertIsNone(res.message)
def find_single_run(self, directory): """ Find a run in the base directory given :param directory: :return: DirectoryStatus object """ logging.info("looking for run in {}".format(directory)) return progress.get_directory_status(directory, self.get_required_file_list())
def test_has_miseq_complete_file(self): """ Tests legacy support to show runs that contain .miseqUploaderComplete as COMPLETE :return: """ directory = path.join(path_to_module, "has_miseq_complete") res = progress.get_directory_status(directory, ["SampleSheet.csv"]) self.assertEqual(res.status, DirectoryStatus.COMPLETE) self.assertEqual( res.message, "Legacy uploader run. Set to complete to avoid uploading duplicate data." )
def test_write_to_new_file(self): # File does not exist yet self.assertFalse(path.exists(self.status_file)) # Create DirectoryStatus to use for writing directory_status = DirectoryStatus(self.directory) # Write to file directory_status.status = DirectoryStatus.COMPLETE progress.write_directory_status(directory_status) # Check that file matches what we wrote status = progress.get_directory_status(self.directory, ["SampleSheet.csv"]) self.assertEqual(DirectoryStatus.COMPLETE, status.status)
def find_runs(self, directory): """ find a list of run directories in the directory given :param directory: :return: list of DirectoryStatus objects """ logging.info("looking for runs in {}".format(directory)) runs = [] directory_list = common.find_directory_list(directory) for d in directory_list: runs.append(progress.get_directory_status(d, self.get_required_file_list())) return runs
def test_write_with_readonly_is_true_file(self): # set readonly to True in config config.set_config_options(readonly=True) # File does not exist yet self.assertFalse(path.exists(self.status_file)) # Create DirectoryStatus to use for writing directory_status = DirectoryStatus(self.directory) # Try write to file (WRITE COMPLETE) directory_status.status = DirectoryStatus.COMPLETE progress.write_directory_status(directory_status) # Check that file matches what we wrote # We should find it as NEW as we have readonly=True status = progress.get_directory_status(self.directory, ["SampleSheet.csv"]) self.assertEqual(DirectoryStatus.NEW, status.status)