@@ -26,52 +26,74 @@ def file_data(file_name):
2626 return json .loads (data )
2727
2828
29+ def match_data (packages , expected_data ):
30+ data = [dict (p .to_dict ()) for p in packages ]
31+ expected_data_dict = dict (expected_data )
32+ expected_data = [dict (expected_data_dict [p ]) for p in expected_data_dict ]
33+ assert expected_data == data
34+
35+
36+ @mock .patch ("fetchcode.package.get_response" )
37+ def test_cargo_packages (mock_get ):
38+ side_effect = [file_data ("tests/data/cargo_mock_data.json" )]
39+ purl = "pkg:cargo/rand"
40+ expected_data = file_data ("tests/data/cargo.json" )
41+ mock_get .side_effect = side_effect
42+ packages = list (info (purl ))
43+ match_data (packages , expected_data )
44+
45+
46+ @mock .patch ("fetchcode.package.get_response" )
47+ def test_npm_packages (mock_get ):
48+ side_effect = [file_data ("tests/data/npm_mock_data.json" )]
49+ purl = "pkg:npm/express"
50+ expected_data = file_data ("tests/data/npm.json" )
51+ mock_get .side_effect = side_effect
52+ packages = list (info (purl ))
53+ match_data (packages , expected_data )
54+
55+
56+ @mock .patch ("fetchcode.package.get_response" )
57+ def test_pypi_packages (mock_get ):
58+ side_effect = [file_data ("tests/data/pypi_mock_data.json" )]
59+ purl = "pkg:pypi/flask"
60+ expected_data = file_data ("tests/data/pypi.json" )
61+ mock_get .side_effect = side_effect
62+ packages = list (info (purl ))
63+ match_data (packages , expected_data )
64+
65+
66+ @mock .patch ("fetchcode.package.get_response" )
67+ def test_github_packages (mock_get ):
68+ side_effect = [
69+ file_data ("tests/data/github_mock_data.json" ),
70+ file_data ("tests/data/github_mock_release_data.json" ),
71+ ]
72+ purl = "pkg:github/TG1999/fetchcode"
73+ expected_data = file_data ("tests/data/github.json" )
74+ mock_get .side_effect = side_effect
75+ packages = list (info (purl ))
76+ match_data (packages , expected_data )
77+
78+
79+ @mock .patch ("fetchcode.package.get_response" )
80+ def test_bitbucket_packages (mock_get ):
81+ side_effect = [
82+ file_data ("tests/data/bitbucket_mock_data.json" ),
83+ file_data ("tests/data/bitbucket_mock_release_data.json" ),
84+ ]
85+ purl = "pkg:bitbucket/litmis/python-itoolkit"
86+ expected_data = file_data ("tests/data/bitbucket.json" )
87+ mock_get .side_effect = side_effect
88+ packages = list (info (purl ))
89+ match_data (packages , expected_data )
90+
91+
2992@mock .patch ("fetchcode.package.get_response" )
30- def test_packages (mock_get ):
31-
32- package_managers = {
33- "cargo" : {
34- "side_effect" : [file_data ("tests/data/cargo_mock_data.json" )],
35- "purl" : "pkg:cargo/rand" ,
36- "expected_data" : "tests/data/cargo.json" ,
37- },
38- "npm" : {
39- "side_effect" : [file_data ("tests/data/npm_mock_data.json" )],
40- "purl" : "pkg:npm/express" ,
41- "expected_data" : "tests/data/npm.json" ,
42- },
43- "pypi" : {
44- "side_effect" : [file_data ("tests/data/pypi_mock_data.json" )],
45- "purl" : "pkg:pypi/flask" ,
46- "expected_data" : "tests/data/pypi.json" ,
47- },
48- "github" : {
49- "side_effect" : [
50- file_data ("tests/data/github_mock_data.json" ),
51- file_data ("tests/data/github_mock_release_data.json" ),
52- ],
53- "purl" : "pkg:github/TG1999/fetchcode" ,
54- "expected_data" : "tests/data/github.json" ,
55- },
56- "bitbucket" : {
57- "side_effect" : [
58- file_data ("tests/data/bitbucket_mock_data.json" ),
59- file_data ("tests/data/bitbucket_mock_release_data.json" ),
60- ],
61- "purl" : "pkg:bitbucket/litmis/python-itoolkit" ,
62- "expected_data" : "tests/data/bitbucket.json" ,
63- },
64- "rubygems" : {
65- "side_effect" : [file_data ("tests/data/rubygems_mock_data.json" )],
66- "purl" : "pkg:rubygems/rubocop" ,
67- "expected_data" : "tests/data/rubygems.json" ,
68- },
69- }
70-
71- for package_manager in package_managers .values ():
72- mock_get .side_effect = package_manager ["side_effect" ]
73- packages = list (info (package_manager ["purl" ]))
74- data = [dict (p .to_dict ()) for p in packages ]
75- expected_data_dict = file_data (package_manager ["expected_data" ])
76- expected_data = [dict (expected_data_dict [p ]) for p in expected_data_dict ]
77- assert expected_data == data
93+ def test_rubygems_packages (mock_get ):
94+ side_effect = [file_data ("tests/data/rubygems_mock_data.json" )]
95+ purl = "pkg:rubygems/rubocop"
96+ expected_data = file_data ("tests/data/rubygems.json" )
97+ mock_get .side_effect = side_effect
98+ packages = list (info (purl ))
99+ match_data (packages , expected_data )
0 commit comments