def test_bad_licenses_identified_are_ignored_by_package_whitelist(self): tree = get_tree() ignored_packages = ["package7==7.7.6", "package6==6.6.6"] whitelist = ["MIT", "Apache-2.0"] _, unknown_licenses = annotate_dep_tree(tree, whitelist, ignored_packages) self.assertSetEqual(set(), unknown_licenses)
def test_bad_licenses_identified__one_package_ignored_by_package_whitelist(self): tree = get_tree() ignored_packages = ["package7"] # package 6 still has the "bad" GPL license whitelist = ["MIT", "Apache-2.0"] _, unknown_licenses = annotate_dep_tree(tree, whitelist, ignored_packages) self.assertSetEqual(set({"GPL"}), unknown_licenses)
def test_get_problematic_packages_from_analyzed_tree_with_ignored_package(self): tree = get_tree() ignored_packages = ["package7"] whitelist = ["MIT", "Apache-2.0"] annotated_tree, unknown_licenses = annotate_dep_tree( tree, whitelist, ignored_packages ) self.assertSetEqual( get_problematic_packages_from_analyzed_tree(annotated_tree), {("package6", "6.6.6"), }, )
def test_annotate_dependency_tree(self): tree = get_tree() whitelist = ["MIT", "Apache-2.0"] annotated_tree, _ = annotate_dep_tree(tree, whitelist, []) expected_tree = AnyNode( name="Name", version="", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=True, license_normalized="MIT", ) # first level package1 = AnyNode( name="@company/package1", parent=expected_tree, version="1.1.1", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=True, license_normalized="MIT", ) package4 = AnyNode( name="package4", parent=expected_tree, version="4.4.4", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=True, license_normalized="MIT", ) package2 = AnyNode( name="package2", parent=package1, version="2.2.2", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=False, license_normalized="MIT", ) AnyNode( name="package5", parent=package2, version="5.5.5", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=False, license_normalized="MIT", ) AnyNode( name="package7", parent=package2, version="7.7.7", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=False, license_normalized="MIT", ) package3 = AnyNode( name="package3", parent=package1, version="3.3.3", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=True, license_normalized="MIT", ) AnyNode( name="package7", parent=package3, version="7.7.6", license="GPL", licenses=["GPL"], license_problem=True, subtree_problem=False, license_normalized="GPL", ) AnyNode( name="package4", parent=package1, version="4.4.4", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=False, license_normalized="MIT", ) package5 = AnyNode( name="package5", parent=package1, version="5.5.5", license="MIT", licenses=["MIT"], license_problem=False, subtree_problem=True, license_normalized="MIT", ) AnyNode( name="package6", parent=package5, version="6.6.6", license="GPL", licenses=["GPL"], license_problem=True, subtree_problem=False, license_normalized="GPL", ) AnyNode( name="package6", parent=package4, version="6.6.6", license="GPL", licenses=["GPL"], license_problem=True, subtree_problem=False, license_normalized="GPL", ) exporter = DictExporter() self.assertDictEqual(exporter.export(expected_tree), exporter.export(annotated_tree))
def test_bad_licenses_identified(self): tree = get_tree() whitelist = ["MIT", "Apache-2.0"] _, unknown_licenses = annotate_dep_tree(tree, whitelist, []) self.assertSetEqual(set({"GPL"}), unknown_licenses)