Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()