class TestDatasetCheckUnlistedMisuses: def setup(self): self.uut = DatasetCheck({}, '', '') self.uut._check_misuse_location_exists = MagicMock() self.uut._report_misuse_not_listed = MagicMock() def test_misuse_not_listed_in_any_version(self): self.uut._get_all_misuses = MagicMock( return_value=["-project-.-misuse-"]) self.uut.start() self.uut.end() self.uut._report_misuse_not_listed.assert_called_once_with( "-project-.-misuse-") def test_listed_misuse_is_not_reported(self): self.uut._get_all_misuses = MagicMock( return_value=["-project-.-misuse-"]) project = create_project("-project-", meta=EMPTY_META) misuse = create_misuse("-misuse-", project=project, meta=EMPTY_META) version = create_version("-version-", project=project, misuses=[misuse], meta=EMPTY_META) self.uut.start() self.uut.process_project_version_misuse(project, version, misuse) self.uut.end() self.uut._report_misuse_not_listed.assert_not_called()
class TestDatasetCheckDatasetLists: def setup(self): self.uut = DatasetCheck({}, '', '') self.uut._report_unknown_dataset_entry = MagicMock() self.uut._check_misuse_location_exists = MagicMock() def test_unknown_entry(self): self.uut.datasets = {"-dataset-": ["-unknown-entry-"]} self.uut.end() self.uut._report_unknown_dataset_entry.assert_any_call( "-dataset-", "-unknown-entry-") def test_no_warning_on_known_project(self): project = create_project("-project-", meta=EMPTY_META) self.uut.datasets = {"-dataset-": [project.id]} self.uut.process_project(project) self.uut.end() self.uut._report_unknown_dataset_entry.assert_not_called() def test_no_warning_on_known_version(self): project = create_project("-project-", meta=EMPTY_META) version = create_version("-version-", project=project, meta=EMPTY_META) self.uut.datasets = {"-dataset-": [version.id]} self.uut.process_project_version(project, version) self.uut.end() self.uut._report_unknown_dataset_entry.assert_not_called() def test_no_warning_on_known_misuse(self): project = create_project("-project-", meta=EMPTY_META) misuse = create_misuse("-misuse-", project=project, meta=EMPTY_META) version = create_version("-version-", project=project, misuses=[misuse], meta=EMPTY_META) self.uut.datasets = {"-dataset-": [misuse.id]} self.uut.process_project_version_misuse(project, version, misuse) self.uut.end() self.uut._report_unknown_dataset_entry.assert_not_called() def test_invalid_violation_type(self): meta = {"characteristics": ["invalid/violation_type"]} project = create_project("-project-", meta=EMPTY_META) misuse = create_misuse("-id-", project=project, meta=meta) version = create_version("-version-", meta=EMPTY_META, project=project, misuses=[misuse]) self.uut._report_invalid_violation_type = MagicMock() self.uut.process_project_version_misuse(project, version, misuse) self.uut._report_invalid_violation_type.assert_any_call( "invalid/violation_type", "-project-/misuses/-id-/misuse.yml") def test_valid_violation_type(self): meta = {"characteristics": ["missing/condition/value_or_state"]} project = create_project("-project-", meta=EMPTY_META) misuse = create_misuse("-id-", project=project, meta=meta) version = create_version("-version-", meta=EMPTY_META, project=project, misuses=[misuse]) self.uut._report_invalid_violation_type = MagicMock() self.uut.process_project_version_misuse(project, version, misuse) self.uut._report_invalid_violation_type.assert_not_called()