Skip to content

Commit f9a1d71

Browse files
committed
Add more fields to dependency API summary #447
* Update test expectations Signed-off-by: Jono Yang <[email protected]>
1 parent 472eb07 commit f9a1d71

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

scanpipe/api/serializers.py

+3
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ def get_discovered_dependency_summary(self, project):
173173
base_qs = project.discovereddependencys
174174
return {
175175
"total": base_qs.count(),
176+
"is_runtime": base_qs.filter(is_runtime=True).count(),
177+
"is_optional": base_qs.filter(is_optional=True).count(),
178+
"is_resolved": base_qs.filter(is_resolved=True).count(),
176179
}
177180

178181
def create(self, validated_data):

scanpipe/tests/test_api.py

+20-2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
from rest_framework.test import APIClient
3939

4040
from scanpipe.api.serializers import CodebaseResourceSerializer
41+
from scanpipe.api.serializers import DiscoveredDependencySerializer
4142
from scanpipe.api.serializers import DiscoveredPackageSerializer
4243
from scanpipe.api.serializers import get_model_serializer
4344
from scanpipe.api.serializers import get_serializer_fields
@@ -49,6 +50,7 @@
4950
from scanpipe.models import Run
5051
from scanpipe.pipes.input import copy_input
5152
from scanpipe.pipes.output import JSONResultsGenerator
53+
from scanpipe.tests import dependency_data1
5254
from scanpipe.tests import package_data1
5355

5456

@@ -63,6 +65,10 @@ def setUp(self):
6365
project=self.project1, path="filename.ext"
6466
)
6567
self.discovered_package1 = self.resource1.create_and_add_package(package_data1)
68+
self.discovered_dependency1 = DiscoveredDependency.create_from_data(
69+
self.project1,
70+
dependency_data1
71+
)
6672

6773
self.project_list_url = reverse("project-list")
6874
self.project1_detail_url = reverse("project-detail", args=[self.project1.uuid])
@@ -83,6 +89,7 @@ def test_scanpipe_api_project_list(self):
8389
self.assertNotContains(response, "error_count")
8490
self.assertNotContains(response, "resource_count")
8591
self.assertNotContains(response, "package_count")
92+
self.assertNotContains(response, "dependency_count")
8693

8794
def test_scanpipe_api_project_list_filters(self):
8895
project2 = Project.objects.create(name="pro2ject", is_archived=True)
@@ -154,6 +161,7 @@ def test_scanpipe_api_project_detail(self):
154161
self.assertEqual(0, response.data["error_count"])
155162
self.assertEqual(1, response.data["resource_count"])
156163
self.assertEqual(1, response.data["package_count"])
164+
self.assertEqual(1, response.data["dependency_count"])
157165

158166
expected = {"": 1}
159167
self.assertEqual(expected, response.data["codebase_resources_summary"])
@@ -163,6 +171,13 @@ def test_scanpipe_api_project_detail(self):
163171
"with_modified_resources": 0,
164172
}
165173
self.assertEqual(expected, response.data["discovered_package_summary"])
174+
expected = {
175+
"total": 1,
176+
"is_runtime": 1,
177+
"is_optional": 0,
178+
"is_resolved": 0,
179+
}
180+
self.assertEqual(expected, response.data["discovered_dependency_summary"])
166181

167182
self.project1.add_input_source(filename="file1", source="uploaded")
168183
self.project1.add_input_source(filename="file2", source="https://download.url")
@@ -273,7 +288,7 @@ def test_scanpipe_api_project_results_generator(self):
273288
expected = ["dependencies", "files", "headers", "packages"]
274289
self.assertEqual(expected, sorted(results.keys()))
275290

276-
self.assertEqual(0, len(results["dependencies"]))
291+
self.assertEqual(1, len(results["dependencies"]))
277292
self.assertEqual(1, len(results["headers"]))
278293
self.assertEqual(1, len(results["files"]))
279294
self.assertEqual(1, len(results["packages"]))
@@ -287,7 +302,7 @@ def test_scanpipe_api_project_action_results(self):
287302
expected = ["dependencies", "files", "headers", "packages"]
288303
self.assertEqual(expected, sorted(results.keys()))
289304

290-
self.assertEqual(0, len(results["dependencies"]))
305+
self.assertEqual(1, len(results["dependencies"]))
291306
self.assertEqual(1, len(results["headers"]))
292307
self.assertEqual(1, len(results["files"]))
293308
self.assertEqual(1, len(results["packages"]))
@@ -623,6 +638,9 @@ def test_scanpipe_api_serializer_get_model_serializer(self):
623638
self.assertEqual(
624639
DiscoveredPackageSerializer, get_model_serializer(DiscoveredPackage)
625640
)
641+
self.assertEqual(
642+
DiscoveredDependencySerializer, get_model_serializer(DiscoveredDependency)
643+
)
626644
self.assertEqual(
627645
CodebaseResourceSerializer, get_model_serializer(CodebaseResource)
628646
)

0 commit comments

Comments
 (0)