5
5
6
6
import pytest
7
7
8
+ from cve_bin_tool .util import ProductInfo
8
9
from cve_bin_tool .version_scanner import VersionScanner
9
10
10
11
@@ -28,43 +29,63 @@ def test_java_package(self, filename: str, product_name: str) -> None:
28
29
scanner = VersionScanner ()
29
30
scanner .file_stack .append (filename )
30
31
# Only expecting to get one product with a vendor in the database
31
- for product in scanner .run_java_checker (filename ):
32
+ for product in scanner .scan_file (filename ):
32
33
if product :
33
34
product_info , file_path = product
34
35
assert product_info .product == product_name
35
36
assert file_path == filename
36
37
37
- @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "pom_fail .xml" )),))
38
+ @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "fail_pom .xml" )),))
38
39
def test_java_package_none_found (self , filename : str ) -> None :
39
40
scanner = VersionScanner ()
40
41
scanner .file_stack .append (filename )
41
42
product = None
42
43
# Not expecting any product to match with a vendor in the database
43
- for product in scanner .run_java_checker (filename ):
44
+ for product in scanner .scan_file (filename ):
44
45
pass
45
46
assert product is None
46
47
47
- @pytest .mark .parametrize (
48
- "filename" , ((str (TEST_FILE_PATH / "package-lock1.json" )),)
49
- )
48
+ @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "package-lock.json" )),))
50
49
def test_javascript_package (self , filename : str ) -> None :
51
50
scanner = VersionScanner ()
52
51
scanner .file_stack .append (filename )
53
52
found_product = []
54
- for product in scanner .run_js_checker (filename ):
53
+ for product in scanner .scan_file (filename ):
55
54
if product :
56
55
product_info , file_path = product
57
56
if product_info .product not in found_product :
58
57
found_product .append (product_info .product )
59
58
assert found_product == self .JAVASCRIPT_PRODUCTS
60
59
assert file_path == filename
61
60
62
- @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "package.json" )),))
61
+ @pytest .mark .parametrize (
62
+ "filename" , ((str (TEST_FILE_PATH / "fail-package-lock.json" )),)
63
+ )
63
64
def test_javascript_package_none_found (self , filename : str ) -> None :
64
65
scanner = VersionScanner ()
65
66
scanner .file_stack .append (filename )
66
67
product = None
67
68
# Not expecting any product to match with a vendor in the database
68
- for product in scanner .run_js_checker (filename ):
69
+ for product in scanner .scan_file (filename ):
69
70
pass
70
71
assert product is not None
72
+
73
+ @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "PKG-INFO" )),))
74
+ def test_python_package (self , filename : str ) -> None :
75
+ scanner = VersionScanner ()
76
+ scanner .file_stack .append (filename )
77
+ for product in scanner .scan_file (filename ):
78
+ if product :
79
+ product_info , file_path = product
80
+ assert product_info == ProductInfo ("facebook" , "zstandard" , "0.18.0" )
81
+ assert file_path == filename
82
+
83
+ @pytest .mark .parametrize ("filename" , ((str (TEST_FILE_PATH / "FAIL-PKG-INFO" )),))
84
+ def test_python_package_none_found (self , filename : str ) -> None :
85
+ scanner = VersionScanner ()
86
+ scanner .file_stack .append (filename )
87
+ product = None
88
+ # Not expecting any product to match with a vendor in the database
89
+ for product in scanner .scan_file (filename ):
90
+ pass
91
+ assert product is None
0 commit comments