@@ -366,3 +366,56 @@ def test_scanpipe_pipes_matchcode_fingerprint_codebase_resources(self):
366366 }
367367 self .assertEqual (expected_extra_data , codebase_resource1 .extra_data )
368368 self .assertFalse (codebase_resource2 .extra_data )
369+
370+ def test_scanpipe_pipes_matchcode_fingerprint_stemmed_codebase_resources (self ):
371+ # This resource should not have a fingerprint
372+ copy_input (
373+ self .data / "aboutcode" / "notice.NOTICE" , self .project1 .codebase_path
374+ )
375+ codebase_resource1 = CodebaseResource .objects .create (
376+ project = self .project1 , path = "notice.NOTICE" , is_text = True
377+ )
378+
379+ # This resource should not have a fingerprint
380+ copy_input (
381+ self .data / "scancode" / "is-npm-1.0.0.tgz" , self .project1 .codebase_path
382+ )
383+ codebase_resource2 = CodebaseResource .objects .create (
384+ project = self .project1 , path = "is-npm-1.0.0.tgz"
385+ )
386+
387+ # This resource should have a fingerprint
388+ copy_input (
389+ self .data / "matchcode" / "fingerprinting" / "handleError.js" ,
390+ self .project1 .codebase_path ,
391+ )
392+ codebase_resource3 = CodebaseResource .objects .create (
393+ project = self .project1 , path = "handleError.js" , is_text = True
394+ )
395+
396+ matchcode .fingerprint_stemmed_codebase_resources (self .project1 )
397+ codebase_resource1 .refresh_from_db ()
398+ codebase_resource2 .refresh_from_db ()
399+ codebase_resource3 .refresh_from_db ()
400+
401+ expected_extra_data = {
402+ "stemmed_halo1" : "0000001ebf495b2fde7beb419238f8a4e8427b41" ,
403+ "stemmed_snippets" : [
404+ {"snippet" : "7089085d2b66fc610e31a54edf2ddc76" , "position" : 0 },
405+ {"snippet" : "accf246732a0ea80d8c59af1a69dc074" , "position" : 2 },
406+ {"snippet" : "a163d9edfaa1f6daf2c1e92fcd4b8b8a" , "position" : 3 },
407+ {"snippet" : "7ebfad556997dc224a75499ee4411169" , "position" : 4 },
408+ {"snippet" : "a77f64bd3bfef4323bd6cbc3c93aab4f" , "position" : 7 },
409+ {"snippet" : "6a2bcde13a7f15492c3e2e4436c4217e" , "position" : 8 },
410+ {"snippet" : "2c988df1972a487121338ec1b947df1a" , "position" : 9 },
411+ {"snippet" : "bebb16613133c76d2c260474fc82ab34" , "position" : 10 },
412+ {"snippet" : "979167ee18b8e80590c2c083ed9e1a8a" , "position" : 11 },
413+ {"snippet" : "d7a3167b8a401f9147ce5ed773fab894" , "position" : 12 },
414+ {"snippet" : "251fb1d28cc5d7ae002ff82b87377233" , "position" : 13 },
415+ {"snippet" : "ed139c8a1f4764c33cdc3432097a2dc6" , "position" : 15 },
416+ {"snippet" : "6c37ff7b040d2c75a0b94597d73d42da" , "position" : 18 },
417+ ],
418+ }
419+ self .assertEqual (expected_extra_data , codebase_resource3 .extra_data )
420+ self .assertFalse (codebase_resource1 .extra_data )
421+ self .assertFalse (codebase_resource2 .extra_data )
0 commit comments