def test_curate_license(self): files = sample_data.files() # Make sure, no curations for f in files['included']: # No curation yet, so no 'scancode_manifestor' self.assertFalse('scancode_manifestor' in f) #print(f['path'] + ": " + str(f['license_expressions']) ) self.utils._curate_license(files, "x11", "mit") for f in files['included']: if f['name'] == "readme.txt": # find the file readme.txt, which is licensed under x11 but curated to mit # curation, so 'scancode_manifestor' and 'curated_license' in there self.assertTrue('scancode_manifestor' in f) self.assertTrue('curated_license' in f['scancode_manifestor']) # only one original license self.assertTrue(len(f['license_expressions']) == 1) # original license should be "x11" self.assertTrue(f['license_expressions'][0] == "x11") # curated license should be "mit" self.assertTrue( f['scancode_manifestor']['curated_license'] == "mit") else: # No curation, so no 'scancode_manifestor' #print(json.dumps(f, indent=4)) self.assertFalse('scancode_manifestor' in f)
def test_include_only_license(self): files = sample_data.files() self.assertTrue(len(files['included']) == 6) self.assertTrue(len(files['excluded']) == 0) self.utils._filter_generic(files, FilterAttribute.LICENSE, "gpl-2.0-or-later", FilterAction.INCLUDE, FilterModifier.ANY) self.assertTrue(len(files['included']) == 2) self.assertTrue(len(files['excluded']) == 4) #print("inc: " + str(len(files['included']))) #for f in files['included']: # import json # print(" * " + str(f['path']) + str(f['license_expressions'])) #print("exc: " + str(len(files['excluded']))) #for f in files['excluded']: # print(" * " + str(f['path']) + str(f['license_expressions'])) #print("") # try include ONLY license self.utils._filter_generic(files, FilterAttribute.LICENSE, "gpl-2.0-or-later", FilterAction.INCLUDE, FilterModifier.ONLY) self.assertTrue(len(files['included']) == 1) self.assertTrue(len(files['excluded']) == 5)
def test_dir_licenses(self): files = sample_data.files() dir = sample_data.sample_dir("git/dit") lic_list = list(self.utils._dir_licenses(files, dir, "included")) lic_list.sort() right_list = [ 'bsd-new', 'gpl-2.0-or-later', 'gpl-3.0-only', 'gpl-3.0-or-later', 'mit' ] self.assertTrue(right_list == lic_list)
def test_include_bad_indata(self): files = sample_data.files() # None as liste self.assertRaises( Exception, lambda: self.utils._filter_generic( None, FilterAttribute.PATH, "onkey", FilterAction.INCLUDE, FilterModifier.ANY)) # Existing but faulty list self.assertRaises( Exception, lambda: self.utils._filter_generic([ ], FilterAttribute.PATH, "onkey", FilterAction.INCLUDE, FilterModifier.ANY)) # No filter self.assertRaises( Exception, lambda: self.utils._filter_generic( files, None, "onkey", FilterAction.INCLUDE, FilterModifier.ANY) ) # Incorrect filter self.assertRaises( Exception, lambda: self.utils._filter_generic( files, "incrorect indata", "onkey", FilterAction.INCLUDE, FilterModifier.ANY)) # Incorrect filter action self.assertRaises( Exception, lambda: self.utils._filter_generic( files, FilterAttribute.PATH, "onkey", None, FilterModifier.ANY) ) # Incorrect filter action self.assertRaises( Exception, lambda: self.utils._filter_generic( files, FilterAttribute.PATH, "onkey", "incorrect data", FilterModifier.ANY)) # None as modifier self.assertRaises( Exception, lambda: self.utils._filter_generic( files, FilterAttribute.PATH, "onkey", FilterAction.INCLUDE, None)) # Incorrect modifier self.assertRaises( Exception, lambda: self.utils._filter_generic( files, FilterAttribute.PATH, "onkey", FilterAction.INCLUDE, "incorrect data"))
def test_exclude_path(self): files = sample_data.files() self.assertTrue(len(files['included']) == 6) self.assertTrue(len(files['excluded']) == 0) self.utils._filter_generic(files, FilterAttribute.PATH, "onkey", FilterAction.EXCLUDE, FilterModifier.ANY) self.assertTrue(len(files['included']) == 3) self.assertTrue(len(files['excluded']) == 3) # try include same files, no change self.utils._filter_generic(files, FilterAttribute.PATH, "onkey", FilterAction.EXCLUDE, FilterModifier.ANY) self.assertTrue(len(files['included']) == 3) self.assertTrue(len(files['excluded']) == 3)
def test_include_license(self): files = sample_data.files() self.assertTrue(len(files['included']) == 6) self.assertTrue(len(files['excluded']) == 0) self.utils._filter_generic(files, FilterAttribute.LICENSE, "mit", FilterAction.INCLUDE, FilterModifier.ANY) self.assertTrue(len(files['included']) == 1) self.assertTrue(len(files['excluded']) == 5) # try include same files, no change self.utils._filter_generic(files, FilterAttribute.LICENSE, "mit", FilterAction.INCLUDE, FilterModifier.ANY) self.assertTrue(len(files['included']) == 1) self.assertTrue(len(files['excluded']) == 5)