Skip to content

Commit 7629d55

Browse files
committed
Update model field attributes #447
* purl and dependency_uid are the only required fields on DiscoveredDependency * Update migrations * Check for created DiscoveredDependency in tests Signed-off-by: Jono Yang <[email protected]>
1 parent d8fe7c3 commit 7629d55

5 files changed

+24
-54
lines changed

scanpipe/migrations/0019_codebaseresource_package_data_discovereddependency.py renamed to scanpipe/migrations/0019_remove_discoveredpackage_dependencies_and_more.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 4.0.6 on 2022-07-27 01:11
1+
# Generated by Django 4.0.6 on 2022-07-30 00:41
22

33
from django.db import migrations, models
44
import django.db.models.deletion
@@ -12,25 +12,34 @@ class Migration(migrations.Migration):
1212
]
1313

1414
operations = [
15+
migrations.RemoveField(
16+
model_name='discoveredpackage',
17+
name='dependencies',
18+
),
1519
migrations.AddField(
1620
model_name='codebaseresource',
1721
name='package_data',
1822
field=models.JSONField(blank=True, default=list, help_text='List of Package data detected from this CodebaseResource'),
1923
),
24+
migrations.AlterField(
25+
model_name='codebaseresource',
26+
name='name',
27+
field=models.CharField(blank=True, help_text='File or directory name of this resource with its extension.', max_length=255),
28+
),
2029
migrations.CreateModel(
2130
name='DiscoveredDependency',
2231
fields=[
2332
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
2433
('purl', models.CharField(help_text='The Package URL of this dependency.', max_length=1024)),
25-
('extracted_requirement', models.CharField(help_text='The version requirements of this dependency.', max_length=64)),
26-
('scope', models.CharField(help_text='The scope of this dependency, how it is used in a project.', max_length=64)),
34+
('extracted_requirement', models.CharField(blank=True, help_text='The version requirements of this dependency.', max_length=64)),
35+
('scope', models.CharField(blank=True, help_text='The scope of this dependency, how it is used in a project.', max_length=64)),
2736
('is_runtime', models.BooleanField(default=False)),
2837
('is_optional', models.BooleanField(default=False)),
2938
('is_resolved', models.BooleanField(default=False)),
3039
('dependency_uid', models.CharField(help_text='The unique identifier of this dependency.', max_length=1024)),
31-
('for_package_uid', models.CharField(help_text='The unique identifier of the package this dependency is for.', max_length=1024)),
40+
('for_package_uid', models.CharField(blank=True, help_text='The unique identifier of the package this dependency is for.', max_length=1024)),
3241
('datafile_path', models.CharField(blank=True, help_text='The relative path to the datafile where this dependency was detected from.', max_length=1024)),
33-
('datasource_id', models.CharField(help_text='The identifier for the datafile handler used to obtain this dependency.', max_length=64)),
42+
('datasource_id', models.CharField(blank=True, help_text='The identifier for the datafile handler used to obtain this dependency.', max_length=64)),
3443
('project', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)ss', to='scanpipe.project')),
3544
],
3645
options={

scanpipe/migrations/0020_concat_codebaseresource_name_and_extension.py

-27
This file was deleted.

scanpipe/migrations/0021_remove_discoveredpackage_dependencies_and_more.py

-22
This file was deleted.

scanpipe/models.py

+4
Original file line numberDiff line numberDiff line change
@@ -1940,10 +1940,12 @@ class DiscoveredDependency(
19401940
)
19411941
extracted_requirement = models.CharField(
19421942
max_length=64,
1943+
blank=True,
19431944
help_text=_("The version requirements of this dependency."),
19441945
)
19451946
scope = models.CharField(
19461947
max_length=64,
1948+
blank=True,
19471949
help_text=_("The scope of this dependency, how it is used in a project."),
19481950
)
19491951

@@ -1957,6 +1959,7 @@ class DiscoveredDependency(
19571959
)
19581960
for_package_uid = models.CharField(
19591961
max_length=1024,
1962+
blank=True,
19601963
help_text=_("The unique identifier of the package this dependency is for."),
19611964
)
19621965
datafile_path = models.CharField(
@@ -1968,6 +1971,7 @@ class DiscoveredDependency(
19681971
)
19691972
datasource_id = models.CharField(
19701973
max_length=64,
1974+
blank=True,
19711975
help_text=_(
19721976
"The identifier for the datafile handler used to obtain this dependency."
19731977
),

scanpipe/tests/test_pipelines.py

+6
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ def test_scanpipe_scan_package_pipeline_integration_test(self):
302302

303303
self.assertEqual(4, project1.codebaseresources.count())
304304
self.assertEqual(1, project1.discoveredpackages.count())
305+
self.assertEqual(0, project1.discovereddependencys.count())
305306

306307
scancode_file = project1.get_latest_output(filename="scancode")
307308
expected_file = self.data_location / "is-npm-1.0.0_scan_package.json"
@@ -335,6 +336,7 @@ def test_scanpipe_scan_package_pipeline_integration_test_multiple_packages(self)
335336

336337
self.assertEqual(9, project1.codebaseresources.count())
337338
self.assertEqual(2, project1.discoveredpackages.count())
339+
self.assertEqual(0, project1.discovereddependencys.count())
338340

339341
scancode_file = project1.get_latest_output(filename="scancode")
340342
expected_file = self.data_location / "multiple-is-npm-1.0.0_scan_package.json"
@@ -386,6 +388,7 @@ def test_scanpipe_docker_pipeline_alpine_integration_test(self):
386388

387389
self.assertEqual(109, project1.codebaseresources.count())
388390
self.assertEqual(14, project1.discoveredpackages.count())
391+
self.assertEqual(0, project1.discovereddependencys.count())
389392

390393
result_file = output.to_json(project1)
391394
expected_file = self.data_location / "alpine_3_15_4_scan_codebase.json"
@@ -409,6 +412,7 @@ def test_scanpipe_docker_pipeline_rpm_integration_test(self):
409412

410413
self.assertEqual(25, project1.codebaseresources.count())
411414
self.assertEqual(101, project1.discoveredpackages.count())
415+
self.assertEqual(0, project1.discovereddependencys.count())
412416

413417
result_file = output.to_json(project1)
414418
expected_file = self.data_location / "centos_scan_codebase.json"
@@ -431,6 +435,7 @@ def test_scanpipe_docker_pipeline_debian_integration_test(self):
431435

432436
self.assertEqual(6, project1.codebaseresources.count())
433437
self.assertEqual(2, project1.discoveredpackages.count())
438+
self.assertEqual(0, project1.discovereddependencys.count())
434439

435440
result_file = output.to_json(project1)
436441
expected_file = self.data_location / "debian_scan_codebase.json"
@@ -495,6 +500,7 @@ def test_scanpipe_load_inventory_pipeline_integration_test(self):
495500

496501
self.assertEqual(18, project1.codebaseresources.count())
497502
self.assertEqual(2, project1.discoveredpackages.count())
503+
self.assertEqual(0, project1.discovereddependencys.count())
498504

499505
result_file = output.to_json(project1)
500506
expected_file = (

0 commit comments

Comments
 (0)