@@ -26,52 +26,74 @@ def file_data(file_name):
26
26
return json .loads (data )
27
27
28
28
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
+
29
92
@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