コード例 #1
0
def _get_normalized_packages():
    six = Package(name='six', version='1.2')
    pip = Package(name='pip', version='20.1')
    foo = Package(**{
        'name': 'flask',
        'version': '0.12',
        'dependencies': [
            {
                'name': 'six',
                'version': '1.2'
            },
            {
                'name': 'six',
                'version': '1.2'
            },
            {
                'name': 'flask',
                'version': '0.12'
            }]
    })
    bar = Package(**{
        'name': 'bar',
        'version': '0.12',
        'dependencies': [Package(**six.dict()), Package(**pip.dict())]
    })
    return NormalizedPackages([foo, bar], 'pypi')
コード例 #2
0
def test_normalized_packages_dependency_graph():
    """Test NormalizedPackages dependency_graph."""
    flask = Package(name='flask', version='0.12')
    six = Package(name='six', version='1.2')
    pip = Package(name='pip', version='20.1')
    foo = Package(**{
        'name': 'flask',
        'version': '0.12',
    })
    bar = Package(**{
        'name': 'bar',
        'version': '0.12',
        'dependencies': [Package(**six.dict()), Package(**pip.dict())]
    })
    normalized = _get_normalized_packages()
    assert foo in normalized.dependency_graph
    assert bar in normalized.dependency_graph
    assert flask in normalized.dependency_graph
    assert six not in normalized.dependency_graph
    assert six in normalized.dependency_graph[foo]
    assert foo in normalized.dependency_graph[foo]
    assert flask in normalized.dependency_graph[foo]
    assert pip not in normalized.dependency_graph[foo]
    assert pip in normalized.dependency_graph[bar]
    assert six in normalized.dependency_graph[bar]
コード例 #3
0
def _get_normalized_packages():
    flask = Package(name='flask', version='0.12')
    six = Package(name='six', version='3.1.1')
    flask_details = PackageDataWithVulnerabilities(**flask.dict(),
                                                   latest_version='1.1.2',
                                                   ecosystem='pypi',
                                                   licenses=['ABC'])
    six_details = PackageDataWithVulnerabilities(**six.dict(),
                                                 latest_version='3.5.0',
                                                 ecosystem='pypi',
                                                 licenses=['XYZ', 'ABC'])

    return [flask_details, six_details]
コード例 #4
0
    def _get_golang_package_details(self, pkg_node) -> Tuple[Package, PackageDetails]:
        """Get Pseudo Golang Package Details."""
        pkg_name = pkg_node.get('name', [None])[0]
        ecosystem = pkg_node.get('ecosystem', [''])[0]
        pkg = Package(name=pkg_name, version=self._normalized_packages.version_map[pkg_name])
        latest_version = pkg_node.get('latest_version', [''])[0]
        public_vulns, private_vulns = _get_vulnerabilities(
            self.filtered_vul.get(pkg_name, []))
        recommended_latest_version = pkg_node.get("latest_non_cve_version", [""])[0]
        pkg_details = PackageDataWithVulnerabilities(
            **pkg.dict(),
            ecosystem=ecosystem,
            latest_version=latest_version,
            github={},
            licenses=[],
            url=get_snyk_package_link(ecosystem, pkg_name),
            private_vulnerabilities=private_vulns,
            public_vulnerabilities=public_vulns,
            recommended_version=recommended_latest_version)

        return pkg, pkg_details