1010
1111import os
1212
13+ from packageurl import PackageURL
14+ from univers .version_constraint import VersionConstraint
15+ from univers .version_range import NpmVersionRange
16+ from univers .versions import SemverVersion
17+
18+ from vulnerabilities .importer import AffectedPackage
1319from vulnerabilities .importers .npm import NpmImporter
1420from vulnerabilities .tests import util_tests
21+ from vulnerabilities .utils import load_json
1522
1623BASE_DIR = os .path .dirname (os .path .abspath (__file__ ))
1724TEST_DATA = os .path .join (BASE_DIR , "test_data/" )
@@ -22,3 +29,17 @@ def test_npm_importer():
2229 result = [adv .to_dict () for adv in NpmImporter ().to_advisory_data (file = file )]
2330 expected_file = os .path .join (TEST_DATA , f"parse-advisory-npm-expected.json" )
2431 util_tests .check_results_against_json (result , expected_file )
32+
33+
34+ def test_get_affected_package ():
35+ file = os .path .join (TEST_DATA , "npm_sample.json" )
36+ data = load_json (file )
37+ assert AffectedPackage (
38+ package = PackageURL (
39+ type = "npm" , namespace = None , name = "npm" , version = None , qualifiers = {}, subpath = None
40+ ),
41+ affected_version_range = NpmVersionRange (
42+ constraints = (VersionConstraint (comparator = "<" , version = SemverVersion (string = "1.3.3" )),)
43+ ),
44+ fixed_version = SemverVersion (string = "1.3.3" ),
45+ ) == NpmImporter ().get_affected_package (data , "npm" )
0 commit comments