@@ -39,6 +39,8 @@ def test_remove_duplicates_keeps_oldest(self):
39
39
Test that when multiple advisories have the same content,
40
40
only the oldest one is kept.
41
41
"""
42
+ from vulnerabilities .utils import compute_content_id
43
+
42
44
# Create three advisories with same content but different dates
43
45
dates = [
44
46
datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
@@ -49,14 +51,15 @@ def test_remove_duplicates_keeps_oldest(self):
49
51
advisories = []
50
52
for date in dates :
51
53
advisory = Advisory .objects .create (
54
+ unique_content_id = compute_content_id (advisory_data = self .advisory_data ),
52
55
summary = self .advisory_data .summary ,
53
56
affected_packages = [pkg .to_dict () for pkg in self .advisory_data .affected_packages ],
54
57
references = [ref .to_dict () for ref in self .advisory_data .references ],
55
58
date_imported = date ,
56
59
date_collected = date ,
60
+ created_by = "test_pipeline" ,
57
61
)
58
62
advisories .append (advisory )
59
- print (advisory .id )
60
63
61
64
# Run the pipeline
62
65
pipeline = RemoveDuplicateAdvisoriesPipeline ()
@@ -73,19 +76,23 @@ def test_different_content_preserved(self):
73
76
"""
74
77
# Create two advisories with different content
75
78
advisory1 = Advisory .objects .create (
79
+ unique_content_id = "test-id1" ,
76
80
summary = "Summary 1" ,
77
81
affected_packages = [],
78
82
date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
79
83
references = [],
80
84
date_imported = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
85
+ created_by = "test_pipeline" ,
81
86
)
82
87
83
88
advisory2 = Advisory .objects .create (
89
+ unique_content_id = "test-id2" ,
84
90
summary = "Summary 2" ,
85
91
affected_packages = [],
86
92
references = [],
87
93
date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
88
94
date_imported = datetime .datetime (2024 , 1 , 2 , tzinfo = pytz .UTC ),
95
+ created_by = "test_pipeline" ,
89
96
)
90
97
91
98
# Run the pipeline
@@ -99,13 +106,16 @@ def test_recompute_content_ids(self):
99
106
"""
100
107
Test that advisories without content IDs get them updated.
101
108
"""
109
+ from vulnerabilities .utils import compute_content_id
110
+
102
111
# Create advisory without content ID
103
112
advisory = Advisory .objects .create (
113
+ unique_content_id = "incorrect-content-id" ,
104
114
summary = self .advisory_data .summary ,
105
115
affected_packages = [pkg .to_dict () for pkg in self .advisory_data .affected_packages ],
106
116
references = [ref .to_dict () for ref in self .advisory_data .references ],
107
- unique_content_id = "" ,
108
117
date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
118
+ created_by = "test_pipeline" ,
109
119
)
110
120
111
121
# Run the pipeline
@@ -114,4 +124,5 @@ def test_recompute_content_ids(self):
114
124
115
125
# Check that content ID was updated
116
126
advisory .refresh_from_db ()
117
- self .assertNotEqual (advisory .unique_content_id , "" )
127
+ expected_content_id = compute_content_id (advisory_data = self .advisory_data )
128
+ self .assertNotEqual (advisory .unique_content_id , expected_content_id )
0 commit comments