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')
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]
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]
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