Skip to content

Commit

Permalink
Add a function to check if checker contains issues
Browse files Browse the repository at this point in the history
Signed-off-by: hoangtungdinh <[email protected]>
  • Loading branch information
hoangtungdinh committed Sep 10, 2024
1 parent ad77fc6 commit ba69831
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 0 deletions.
8 changes: 8 additions & 0 deletions qc_baselib/result.py
Original file line number Diff line number Diff line change
Expand Up @@ -568,3 +568,11 @@ def has_at_least_one_issue_from_rules(self, rule_uid_set: Set[str]) -> bool:
return True

return False

def has_at_least_one_issue_from_checkers(self, check_id_set: Set[str]) -> bool:
for bundle in self._report_results.checker_bundles:
for checker in bundle.checkers:
if checker.checker_id in check_id_set and len(checker.issues) > 0:
return True

return False
75 changes: 75 additions & 0 deletions tests/test_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,81 @@ def test_has_at_least_one_issue_from_rules() -> None:
assert result_report.has_at_least_one_issue_from_rules({}) == False


def test_has_at_least_one_issue_from_checkers() -> None:
result_report = Result()

result_report.register_checker_bundle(
name="TestBundle",
build_date="2024-05-31",
description="Example checker bundle",
version="0.0.1",
summary="Tested example checkers",
)

result_report.register_checker(
checker_bundle_name="TestBundle",
checker_id="FirstChecker",
description="Test checker",
summary="Executed evaluation",
)

rule_uid_1 = result_report.register_rule(
checker_bundle_name="TestBundle",
checker_id="FirstChecker",
emanating_entity="test.com",
standard="qc",
definition_setting="1.0.0",
rule_full_name="first.rule",
)

result_report.register_issue(
checker_bundle_name="TestBundle",
checker_id="FirstChecker",
description="Issue found at odr",
level=IssueSeverity.INFORMATION,
rule_uid=rule_uid_1,
)

result_report.register_checker(
checker_bundle_name="TestBundle",
checker_id="SecondChecker",
description="Test checker",
summary="Executed evaluation",
)

result_report.register_rule(
checker_bundle_name="TestBundle",
checker_id="SecondChecker",
emanating_entity="test.com",
standard="qc",
definition_setting="1.0.0",
rule_full_name="second.rule",
)

assert (
result_report.has_at_least_one_issue_from_checkers(
{"SecondChecker", "ThirdChecker"}
)
== False
)

assert (
result_report.has_at_least_one_issue_from_checkers(
{"FirstChecker", "SecondChecker"}
)
== True
)

assert (
result_report.has_at_least_one_issue_from_checkers(
{"FirstChecker", "ThirdChecker"}
)
== True
)

assert result_report.has_at_least_one_issue_from_checkers({}) == False


def test_registration_without_summary() -> None:
result_report = Result()

Expand Down

0 comments on commit ba69831

Please sign in to comment.