99
1010import json
1111import os
12+ from datetime import datetime
1213
1314from matchcode .models import ApproximateDirectoryContentIndex
1415from matchcode .models import ApproximateDirectoryStructureIndex
@@ -185,7 +186,7 @@ def test_indexing_index_package_dwarf(self):
185186 expected_extra_data = scan_data ["files" ][0 ]["extra_data" ]
186187 self .assertEqual (expected_extra_data , extra_data )
187188
188- def test_update_package_relationships (self ):
189+ def test_update_check_for_duplicate_packages (self ):
189190 test_package1 = Package .objects .create (
190191 download_url = "https://github.com//wagon-api/wagon-api-20040705.181715.jar" ,
191192 type = "github" ,
@@ -208,11 +209,11 @@ def test_update_package_relationships(self):
208209 with open (scan_data_loc , "rb" ) as f :
209210 scan_data = json .loads (f .read ())
210211
211- indexing_errors = indexing .index_package_files (test_package1 , scan_data )
212+ # Test that resources
213+ indexing .index_package_files (test_package1 , scan_data )
212214 indexing .update_package_relationships (
213215 package = test_package2 , existing_package = test_package1
214216 )
215-
216217 resources = Resource .objects .filter (package = test_package2 )
217218 self .assertEqual (64 , len (resources ))
218219 resource_data = [r .to_dict () for r in resources ]
@@ -222,3 +223,36 @@ def test_update_package_relationships(self):
222223 self .check_expected_results (
223224 resource_data , expected_resources_loc , regen = FIXTURES_REGEN
224225 )
226+
227+ def test_update_check_for_duplicate_packages_release_date (self ):
228+ test_package1 = Package .objects .create (
229+ download_url = "https://bitbucket.com//wagon-api/wagon-api-20040705.181715.jar" ,
230+ type = "bitbucket" ,
231+ namespace = "" ,
232+ name = "wagon-api" ,
233+ version = "20040705.181715" ,
234+ sha1 = "12345" ,
235+ release_date = datetime .now (),
236+ )
237+ test_package2 = Package .objects .create (
238+ download_url = "https://github.com/wagon-api-20040705.181715.jar" ,
239+ type = "github" ,
240+ namespace = "" ,
241+ name = "wagon-api" ,
242+ version = "20040705.181715" ,
243+ sha1 = "12345" ,
244+ release_date = datetime .now (),
245+ )
246+ scan_data_loc = self .get_test_loc (
247+ "indexing/scancodeio_wagon-api-20040705.181715.json"
248+ )
249+ with open (scan_data_loc , "rb" ) as f :
250+ scan_data = json .loads (f .read ())
251+
252+ # Test that resources are updated to use the older package
253+ indexing .index_package_files (test_package2 , scan_data )
254+ indexing .update_package_relationships (
255+ package = test_package1 , existing_package = test_package2
256+ )
257+ resources = Resource .objects .filter (package = test_package1 )
258+ self .assertEqual (64 , len (resources ))
0 commit comments