|
9 | 9 |
|
10 | 10 | import json |
11 | 11 | import os |
| 12 | +from pathlib import Path |
12 | 13 | from unittest import mock |
13 | 14 |
|
14 | 15 | import pytest |
| 16 | +from packageurl import PackageURL |
15 | 17 |
|
16 | 18 | from vulnerabilities.importer import AdvisoryData |
17 | 19 | from vulnerabilities.importers.gitlab import GitLabBasicImprover |
| 20 | +from vulnerabilities.importers.gitlab import get_gitlab_package_type |
| 21 | +from vulnerabilities.importers.gitlab import get_purl |
18 | 22 | from vulnerabilities.importers.gitlab import parse_gitlab_advisory |
19 | 23 | from vulnerabilities.improvers.default import DefaultImprover |
20 | 24 | from vulnerabilities.tests import util_tests |
@@ -84,3 +88,34 @@ def test_gitlab_improver(mock_response, pkg_type): |
84 | 88 | inference = [data.to_dict() for data in improver.get_inferences(advisory)] |
85 | 89 | result.extend(inference) |
86 | 90 | util_tests.check_results_against_json(result, expected_file) |
| 91 | + |
| 92 | + |
| 93 | +def test_get_purl(): |
| 94 | + assert get_purl("nuget/MessagePack") == PackageURL(type="nuget", name="MessagePack") |
| 95 | + assert get_purl("nuget/Microsoft.NETCore.App") == PackageURL( |
| 96 | + type="nuget", name="Microsoft.NETCore.App" |
| 97 | + ) |
| 98 | + assert get_purl("npm/fresh") == PackageURL(type="npm", name="fresh") |
| 99 | + |
| 100 | + |
| 101 | +def test_get_gitlab_package_type(): |
| 102 | + assert ( |
| 103 | + get_gitlab_package_type(Path("/tmp/tmp9317bd5i/maven/com.google.gwt/gwt/CVE-2013-4204.yml")) |
| 104 | + == "maven" |
| 105 | + ) |
| 106 | + assert ( |
| 107 | + get_gitlab_package_type( |
| 108 | + Path( |
| 109 | + "/tmp/tmp9317bd5i/maven/io.projectreactor.netty/reactor-netty-http/CVE-2020-5404.yml" |
| 110 | + ) |
| 111 | + ) |
| 112 | + == "maven" |
| 113 | + ) |
| 114 | + assert ( |
| 115 | + get_gitlab_package_type( |
| 116 | + Path("/tmp/tmp9317bd5i/go/github.com/cloudflare/cfrpki/CVE-2021-3909.yml") |
| 117 | + ) |
| 118 | + == "go" |
| 119 | + ) |
| 120 | + assert get_gitlab_package_type(Path("/tmp/tmp9317bd5i/gem/rexml/CVE-2021-28965.yml")) == "gem" |
| 121 | + assert get_gitlab_package_type(Path()) is None |
0 commit comments