Skip to content

Commit 5fee298

Browse files
committed
add test for api and replace clarity_compliance with license_clarity_compliance everywhere
Signed-off-by: NucleonGodX <[email protected]>
1 parent 2598b0d commit 5fee298

File tree

12 files changed

+64
-42
lines changed

12 files changed

+64
-42
lines changed

docs/policies.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ structure similar to the following:
5757
Creating Clarity Thresholds Files
5858
---------------------------------
5959

60-
A valid clarity thresholds file is required to **enable clarity compliance features**.
60+
A valid clarity thresholds file is required to **enable license clarity compliance features**.
6161

6262
The clarity thresholds file, by default named ``policies.yml``, is a **YAML file** with a
6363
structure similar to the following:

docs/rest-api.rst

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -495,25 +495,27 @@ Data:
495495
496496
.. _rest_api_clarity_compliance:
497497

498-
Clarity Compliance
499-
^^^^^^^^^^^^^^^^^^
498+
License Clarity Compliance
499+
^^^^^^^^^^^^^^^^^^^^^^^^^^
500500

501-
This action returns the **clarity compliance alert** for a project.
501+
This action returns the **license clarity compliance alert** for a project.
502502

503-
The clarity compliance alert is a single value (``ok``, ``warning``, or ``error``) that summarizes
504-
the project's **license clarity status**, based on the thresholds defined in the ``policies.yml`` file.
503+
The license clarity compliance alert is a single value (``ok``, ``warning``, or ``error``)
504+
that summarizes the project's **license clarity status**, based on the thresholds defined in
505+
the ``policies.yml`` file.
505506

506-
``GET /api/projects/6461408c-726c-4b70-aa7a-c9cc9d1c9685/clarity_compliance/``
507+
``GET /api/projects/6461408c-726c-4b70-aa7a-c9cc9d1c9685/license_clarity_compliance/``
507508

508509
Data:
509-
- ``clarity_compliance_alert``: The overall clarity compliance alert for the project.
510+
- ``license_clarity_compliance_alert``: The overall license clarity compliance alert
511+
for the project.
510512

511513
Possible values: ``ok``, ``warning``, ``error``.
512514

513515
.. code-block:: json
514516
515517
{
516-
"clarity_compliance_alert": "warning"
518+
"license_clarity_compliance_alert": "warning"
517519
}
518520
519521
Reset

docs/tutorial_license_policies.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,11 @@ Add a ``license_clarity_thresholds`` section to your ``policies.yml`` file, for
103103
0: error
104104
105105
106-
Clarity Compliance in Results
107-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106+
License Clarity Compliance in Results
107+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108108

109109
When you run a pipeline with clarity thresholds defined in your ``policies.yml``,
110-
the computed clarity compliance alert is included in the project's ``extra_data`` field.
110+
the computed license clarity compliance alert is included in the project's ``extra_data`` field.
111111

112112
For example:
113113

@@ -121,10 +121,10 @@ For example:
121121
"sha512": "208f6a83c83a4c770b3c0",
122122
"filename": "cuckoo_filter-1.0.6.tar.gz",
123123
"sha1_git": "3fdb0f82ad59",
124-
"clarity_compliance_alert": "error"
124+
"license_clarity_compliance_alert": "error"
125125
}
126126
127-
The ``clarity_compliance_alert`` value (e.g., ``"error"``, ``"warning"``, or ``"ok"``)
127+
The ``license_clarity_compliance_alert`` value (e.g., ``"error"``, ``"warning"``, or ``"ok"``)
128128
is computed automatically based on the thresholds you configured and reflects the
129129
overall license clarity status of the scanned codebase.
130130

@@ -149,8 +149,8 @@ in the project:
149149
[resources]
150150
> ERROR: 1
151151
cuckoo_filter-1.0.6.tar.gz-extract/cuckoo_filter-1.0.6/README.md
152-
[License Clarity]
153-
> Alert Level: error
152+
[license clarity]
153+
> Alert Level: ERROR
154154
155155
.. tip::
156156
In case of compliance alerts, the command returns a non-zero exit code which

scanpipe/api/views.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -484,18 +484,18 @@ def compliance(self, request, *args, **kwargs):
484484
@action(detail=True, methods=["get"])
485485
def clarity_compliance(self, request, *args, **kwargs):
486486
"""
487-
Retrieve the clarity compliance alert for a project.
487+
Retrieve the license clarity compliance alert for a project.
488488
489-
This endpoint returns the clarity compliance alert stored in the
489+
This endpoint returns the license clarity compliance alert stored in the
490490
project's extra_data.
491491
492492
Example:
493-
GET /api/projects/{project_id}/clarity_compliance/
493+
GET /api/projects/{project_id}/license_clarity_compliance/
494494
495495
"""
496496
project = self.get_object()
497-
clarity_alert = project.get_clarity_compliance_alert()
498-
return Response({"clarity_compliance_alert": clarity_alert})
497+
clarity_alert = project.get_license_clarity_compliance_alert()
498+
return Response({"license_clarity_compliance_alert": clarity_alert})
499499

500500

501501
class RunViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):

scanpipe/management/commands/check-compliance.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def check_compliance(self, fail_level):
7474
len(issues) for model in alerts.values() for issues in model.values()
7575
)
7676

77-
clarity_alert = self.project.get_clarity_compliance_alert()
77+
clarity_alert = self.project.get_license_clarity_compliance_alert()
7878
has_clarity_issue = clarity_alert not in (None, "ok")
7979

8080
total_issues = count + (1 if has_clarity_issue else 0)
@@ -89,8 +89,8 @@ def check_compliance(self, fail_level):
8989
self.stderr.write(" " + "\n ".join(entries))
9090

9191
if has_clarity_issue:
92-
self.stderr.write("[License Clarity]")
93-
self.stderr.write(f" > Alert Level: {clarity_alert}")
92+
self.stderr.write("[license clarity]")
93+
self.stderr.write(f" > Alert Level: {clarity_alert.upper()}")
9494

9595
return total_issues > 0
9696

scanpipe/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1514,13 +1514,13 @@ def get_policies_dict(self):
15141514

15151515
return scanpipe_app.policies
15161516

1517-
def get_clarity_compliance_alert(self):
1517+
def get_license_clarity_compliance_alert(self):
15181518
"""
1519-
Return the clarity compliance alert value for the project,
1519+
Return the license clarity compliance alert value for the project,
15201520
or None if not set.
15211521
"""
15221522
extra_data = self.extra_data or {}
1523-
return extra_data.get("clarity_compliance_alert")
1523+
return extra_data.get("license_clarity_compliance_alert")
15241524

15251525
def get_license_policy_index(self):
15261526
"""Return the policy license index for this project instance."""

scanpipe/pipes/scancode.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ def make_results_summary(project, scan_results_location):
932932
Extract selected sections of the Scan results, such as the `summary`
933933
`license_clarity_score`, and `license_matches` related data.
934934
The `key_files` are also collected and injected in the `summary` output.
935-
Additionally, store clarity_compliance_alert in project's extra_data.
935+
Additionally, store license_clarity_compliance_alert in project's extra_data.
936936
"""
937937
import json
938938

@@ -973,7 +973,7 @@ def make_results_summary(project, scan_results_location):
973973
clarity_policy = get_project_clarity_thresholds(project)
974974
if clarity_policy:
975975
alert = clarity_policy.get_alert_for_score(clarity_score)
976-
summary["clarity_compliance_alert"] = alert
976+
summary["license_clarity_compliance_alert"] = alert
977977

978-
project.update_extra_data({"clarity_compliance_alert": alert})
978+
project.update_extra_data({"license_clarity_compliance_alert": alert})
979979
return summary

scanpipe/templates/scanpipe/panels/project_compliance.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% load humanize %}
2-
{% if compliance_alerts or clarity_compliance_alert %}
2+
{% if compliance_alerts or license_clarity_compliance_alert %}
33
<div class="column is-half">
44
<nav id="compliance-panel" class="panel is-dark">
55
<p class="panel-heading">
@@ -19,17 +19,17 @@
1919
{% endfor %}
2020
</div>
2121
{% endfor %}
22-
{% if clarity_compliance_alert %}
22+
{% if license_clarity_compliance_alert %}
2323
<div class="panel-block">
2424
<span class="pr-1">
2525
License clarity
2626
</span>
2727
<span class="tag is-rounded ml-1
28-
{% if clarity_compliance_alert == 'error' %}is-danger
29-
{% elif clarity_compliance_alert == 'warning' %}is-warning
30-
{% elif clarity_compliance_alert == 'ok' %}is-success
28+
{% if license_clarity_compliance_alert == 'error' %}is-danger
29+
{% elif license_clarity_compliance_alert == 'warning' %}is-warning
30+
{% elif license_clarity_compliance_alert == 'ok' %}is-success
3131
{% else %}is-light{% endif %}">
32-
{{ clarity_compliance_alert|title }}
32+
{{ license_clarity_compliance_alert|title }}
3333
</span>
3434
</div>
3535
{% endif %}

scanpipe/tests/test_api.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,6 +1252,24 @@ def test_scanpipe_api_project_action_compliance(self):
12521252
}
12531253
self.assertDictEqual(expected, response.data)
12541254

1255+
def test_scanpipe_api_project_action_license_clarity_compliance(self):
1256+
project = make_project()
1257+
url = reverse("project-clarity-compliance", args=[project.uuid])
1258+
1259+
response = self.csrf_client.get(url)
1260+
expected = {"license_clarity_compliance_alert": None}
1261+
self.assertEqual(expected, response.data)
1262+
1263+
project.update_extra_data({"license_clarity_compliance_alert": "ok"})
1264+
response = self.csrf_client.get(url)
1265+
expected = {"license_clarity_compliance_alert": "ok"}
1266+
self.assertEqual(expected, response.data)
1267+
1268+
project.update_extra_data({"license_clarity_compliance_alert": "error"})
1269+
response = self.csrf_client.get(url)
1270+
expected = {"license_clarity_compliance_alert": "error"}
1271+
self.assertEqual(expected, response.data)
1272+
12551273
def test_scanpipe_api_serializer_get_model_serializer(self):
12561274
self.assertEqual(
12571275
DiscoveredPackageSerializer, get_model_serializer(DiscoveredPackage)

scanpipe/tests/test_commands.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,7 +1216,7 @@ def test_scanpipe_management_command_check_compliance(self):
12161216
def test_scanpipe_management_command_check_clarity_compliance_only(self):
12171217
project = make_project(name="my_project_clarity")
12181218

1219-
project.extra_data = {"clarity_compliance_alert": "error"}
1219+
project.extra_data = {"license_clarity_compliance_alert": "error"}
12201220
project.save(update_fields=["extra_data"])
12211221

12221222
out = StringIO()
@@ -1226,7 +1226,7 @@ def test_scanpipe_management_command_check_clarity_compliance_only(self):
12261226
self.assertEqual(cm.exception.code, 1)
12271227
out_value = out.getvalue().strip()
12281228
expected = (
1229-
"1 compliance issues detected.\n[License Clarity]\n > Alert Level: error"
1229+
"1 compliance issues detected.\n[license clarity]\n > Alert Level: ERROR"
12301230
)
12311231
self.assertEqual(expected, out_value)
12321232

@@ -1238,7 +1238,7 @@ def test_scanpipe_management_command_check_both_compliance_and_clarity(self):
12381238
package_url="pkg:generic/[email protected]",
12391239
compliance_alert=CodebaseResource.Compliance.ERROR,
12401240
)
1241-
project.extra_data = {"clarity_compliance_alert": "warning"}
1241+
project.extra_data = {"license_clarity_compliance_alert": "warning"}
12421242
project.save(update_fields=["extra_data"])
12431243

12441244
out = StringIO()
@@ -1250,7 +1250,7 @@ def test_scanpipe_management_command_check_both_compliance_and_clarity(self):
12501250
expected = (
12511251
"2 compliance issues detected."
12521252
"\n[packages]\n > ERROR: 1"
1253-
"\n[License Clarity]\n > Alert Level: warning"
1253+
"\n[license clarity]\n > Alert Level: WARNING"
12541254
)
12551255
self.assertEqual(expected, out_value)
12561256

0 commit comments

Comments
 (0)