示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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"), },
        )
示例#4
0
    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))
示例#5
0
    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)