Skip to content

Commit 8192efb

Browse files
fix: validating code and replacing the hard-coded severity list
Signed-off-by: Abanoub Aziz <[email protected]>
1 parent b3b9edd commit 8192efb

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

scanpipe/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2202,6 +2202,15 @@ def compliance_issues(self, severity):
22022202

22032203
return self.filter(compliance_alert__in=severity_mapping[severity])
22042204

2205+
def compliance_alerts_ordered_by_severity(self):
2206+
"""Return a list of compliance alerts ordered by severity."""
2207+
compliance = self.model.Compliance
2208+
return [
2209+
compliance.ERROR.value,
2210+
compliance.WARNING.value,
2211+
compliance.MISSING.value,
2212+
]
2213+
22052214

22062215
def convert_glob_to_django_regex(glob_pattern):
22072216
"""

scanpipe/pipes/compliance.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,17 @@ def group_compliance_alerts_by_severity(queryset):
7272
string representations of the instances associated with that severity.
7373
"""
7474
compliance_alerts = defaultdict(list)
75-
severity_levels = ['error', 'warning', 'missing']
75+
severity_levels = queryset.compliance_alerts_ordered_by_severity()
7676

7777
for instance in queryset:
7878
compliance_alerts[instance.compliance_alert].append(str(instance))
7979

8080
# Sort keys for consistent ordering (["error", "warning", "missing"])
8181
sorted_keys = sorted(
8282
compliance_alerts.keys(),
83-
key=lambda label: severity_levels.index(label) if label in severity_levels else len(severity_levels)
83+
key=lambda label: severity_levels.index(label)
84+
if label in severity_levels
85+
else len(severity_levels),
8486
)
8587

8688
sorted_compliance_alerts = {

scanpipe/tests/pipes/test_compliance.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,15 @@ def test_scanpipe_compliance_get_project_compliance_alerts(self):
6363
make_package(
6464
project,
6565
package_url="pkg:generic/[email protected]",
66-
compliance_alert=CodebaseResource.Compliance.WARNING,
66+
compliance_alert=CodebaseResource.Compliance.ERROR,
6767
)
6868
make_package(
6969
project,
7070
package_url="pkg:generic/[email protected]",
7171
compliance_alert=CodebaseResource.Compliance.MISSING,
7272
)
73-
compliance_alerts = get_project_compliance_alerts(project)
73+
compliance_alerts = get_project_compliance_alerts(project, fail_level="missing")
74+
print(compliance_alerts)
7475
expected = {
7576
"packages": {
7677
"error": ["pkg:generic/[email protected]", "pkg:generic/[email protected]"],

0 commit comments

Comments
 (0)