@@ -39,6 +39,8 @@ def test_remove_duplicates_keeps_oldest(self):
3939 Test that when multiple advisories have the same content,
4040 only the oldest one is kept.
4141 """
42+ from vulnerabilities .utils import compute_content_id
43+
4244 # Create three advisories with same content but different dates
4345 dates = [
4446 datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
@@ -49,14 +51,15 @@ def test_remove_duplicates_keeps_oldest(self):
4951 advisories = []
5052 for date in dates :
5153 advisory = Advisory .objects .create (
54+ unique_content_id = compute_content_id (advisory_data = self .advisory_data ),
5255 summary = self .advisory_data .summary ,
5356 affected_packages = [pkg .to_dict () for pkg in self .advisory_data .affected_packages ],
5457 references = [ref .to_dict () for ref in self .advisory_data .references ],
5558 date_imported = date ,
5659 date_collected = date ,
60+ created_by = "test_pipeline" ,
5761 )
5862 advisories .append (advisory )
59- print (advisory .id )
6063
6164 # Run the pipeline
6265 pipeline = RemoveDuplicateAdvisoriesPipeline ()
@@ -73,19 +76,23 @@ def test_different_content_preserved(self):
7376 """
7477 # Create two advisories with different content
7578 advisory1 = Advisory .objects .create (
79+ unique_content_id = "test-id1" ,
7680 summary = "Summary 1" ,
7781 affected_packages = [],
7882 date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
7983 references = [],
8084 date_imported = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
85+ created_by = "test_pipeline" ,
8186 )
8287
8388 advisory2 = Advisory .objects .create (
89+ unique_content_id = "test-id2" ,
8490 summary = "Summary 2" ,
8591 affected_packages = [],
8692 references = [],
8793 date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
8894 date_imported = datetime .datetime (2024 , 1 , 2 , tzinfo = pytz .UTC ),
95+ created_by = "test_pipeline" ,
8996 )
9097
9198 # Run the pipeline
@@ -99,13 +106,16 @@ def test_recompute_content_ids(self):
99106 """
100107 Test that advisories without content IDs get them updated.
101108 """
109+ from vulnerabilities .utils import compute_content_id
110+
102111 # Create advisory without content ID
103112 advisory = Advisory .objects .create (
113+ unique_content_id = "incorrect-content-id" ,
104114 summary = self .advisory_data .summary ,
105115 affected_packages = [pkg .to_dict () for pkg in self .advisory_data .affected_packages ],
106116 references = [ref .to_dict () for ref in self .advisory_data .references ],
107- unique_content_id = "" ,
108117 date_collected = datetime .datetime (2024 , 1 , 1 , tzinfo = pytz .UTC ),
118+ created_by = "test_pipeline" ,
109119 )
110120
111121 # Run the pipeline
@@ -114,4 +124,5 @@ def test_recompute_content_ids(self):
114124
115125 # Check that content ID was updated
116126 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