2626from fetchcode .package_util import construct_cocoapods_package
2727from fetchcode .package_util import get_cocoapod_tags
2828
29+ # Set to True to regenerate expected JSON files.
30+ REGEN = True
2931
30- def file_data (file_name ):
32+
33+ def load_json (file_name ):
3134 with open (file_name ) as file :
3235 data = file .read ()
3336 return json .loads (data )
3437
3538
36- def match_data (packages , expected_data ):
39+ def check_packages (packages , expected_data ):
3740 data = [dict (p .to_dict ()) for p in packages ]
3841 expected_data_dict = dict (expected_data )
3942 expected_data = [dict (expected_data_dict [p ]) for p in expected_data_dict ]
4043 assert expected_data == data
4144
4245
43- def match_data_list (data_list , expected_data ):
44- data = sorted (data_list )
45- expected_data = sorted (expected_data )
46- assert expected_data == data
47-
48-
4946@mock .patch ("fetchcode.package.get_response" )
5047def test_cargo_packages (mock_get ):
51- side_effect = [file_data ("tests/data/cargo_mock_data.json" )]
48+ side_effect = [load_json ("tests/data/cargo_mock_data.json" )]
5249 purl = "pkg:cargo/rand"
53- expected_data = file_data ("tests/data/cargo.json" )
50+ expected_data = load_json ("tests/data/cargo.json" )
5451 mock_get .side_effect = side_effect
5552 packages = list (info (purl ))
56- match_data (packages , expected_data )
53+ check_packages (packages , expected_data )
5754
5855
5956@mock .patch ("fetchcode.package.get_response" )
6057def test_npm_packages (mock_get ):
61- side_effect = [file_data ("tests/data/npm_mock_data.json" )]
58+ side_effect = [load_json ("tests/data/npm_mock_data.json" )]
6259 purl = "pkg:npm/express"
63- expected_data = file_data ("tests/data/npm.json" )
60+ expected_data = load_json ("tests/data/npm.json" )
6461 mock_get .side_effect = side_effect
6562 packages = list (info (purl ))
66- match_data (packages , expected_data )
63+ check_packages (packages , expected_data )
6764
6865
6966@mock .patch ("fetchcode.package.get_response" )
7067def test_pypi_packages (mock_get ):
71- side_effect = [file_data ("tests/data/pypi_mock_data.json" )]
68+ side_effect = [load_json ("tests/data/pypi_mock_data.json" )]
7269 purl = "pkg:pypi/flask"
73- expected_data = file_data ("tests/data/pypi.json" )
70+ expected_data = load_json ("tests/data/pypi.json" )
7471 mock_get .side_effect = side_effect
7572 packages = list (info (purl ))
76- match_data (packages , expected_data )
73+ check_packages (packages , expected_data )
7774
7875
7976@mock .patch ("fetchcode.package.get_response" )
8077def test_bitbucket_packages (mock_get ):
8178 side_effect = [
82- file_data ("tests/data/bitbucket_mock_data.json" ),
83- file_data ("tests/data/bitbucket_mock_release_data.json" ),
79+ load_json ("tests/data/bitbucket_mock_data.json" ),
80+ load_json ("tests/data/bitbucket_mock_release_data.json" ),
8481 ]
8582 purl = "pkg:bitbucket/litmis/python-itoolkit"
86- expected_data = file_data ("tests/data/bitbucket.json" )
83+ expected_data = load_json ("tests/data/bitbucket.json" )
8784 mock_get .side_effect = side_effect
8885 packages = list (info (purl ))
89- match_data (packages , expected_data )
86+ check_packages (packages , expected_data )
9087
9188
9289@mock .patch ("fetchcode.package.get_response" )
9390def test_rubygems_packages (mock_get ):
94- side_effect = [file_data ("tests/data/rubygems_mock_data.json" )]
91+ side_effect = [load_json ("tests/data/rubygems_mock_data.json" )]
9592 purl = "pkg:rubygems/rubocop"
96- expected_data = file_data ("tests/data/rubygems.json" )
93+ expected_data = load_json ("tests/data/rubygems.json" )
9794 mock_get .side_effect = side_effect
9895 packages = list (info (purl ))
99- match_data (packages , expected_data )
96+ check_packages (packages , expected_data )
10097
10198
10299@mock .patch ("fetchcode.package.get_response" )
@@ -126,7 +123,7 @@ def test_get_cocoapods_data_from_purl(
126123 '0.1.1' ,
127124 '0.1.0' ,
128125 ]
129- mock_get_github_rest .return_value = file_data ("tests/data/cocoapods/mock_get_github_rest_return_value.json" )
126+ mock_get_github_rest .return_value = load_json ("tests/data/cocoapods/mock_get_github_rest_return_value.json" )
130127 mock_get_response .side_effect = file_json ("tests/data/cocoapods/mock_get_response_side_effect.json" )
131128 expected_result_to_dict = file_json ("tests/data/cocoapods/expected_result_to_dict.json" )
132129 purl = "pkg:cocoapods/ASNetworking"
@@ -148,17 +145,18 @@ def test_get_cocoapod_tags(mock_get):
148145 hashed_path_underscore = hashed_path .replace ("/" , "_" )
149146 file_prefix = "all_pods_versions_"
150147 spec = f"{ api } /{ file_prefix } { hashed_path_underscore } .txt"
151- expected_data = ['0.3.0' , '0.2.0' , '0.1.1' , '0.1.0' ]
152- data_list = get_cocoapod_tags (spec , cocoapods_org_pod_name )
153- match_data_list (data_list , expected_data )
148+ expected_tags = ['0.1.0' , '0.1.1' , '0.2.0' , '0.3.0' ]
149+ tags = get_cocoapod_tags (spec , cocoapods_org_pod_name )
150+ tags = sorted (tags )
151+ assert tags == expected_tags
154152
155153
156154@mock .patch ("fetchcode.package_util.utils.get_response" )
157155@mock .patch ("fetchcode.package_util.utils.get_github_rest" )
158156def test_construct_cocoapods_package (mock_get_github_rest , mock_get_response ):
159157 mock_get_github_rest .return_value = "Failed to fetch: https://api.github.com/repos/KevalPatel94/KVLLibraries"
160- mock_get_response .return_value = file_data ("tests/data/cocoapods/get_response_kvllibraries.json" )
161- expected_construct_cocoapods_package = file_data ("tests/data/cocoapods/expected_construct_cocoapods_package.json" )
158+ mock_get_response .return_value = load_json ("tests/data/cocoapods/get_response_kvllibraries.json" )
159+ expected_construct_cocoapods_package = load_json ("tests/data/cocoapods/expected_construct_cocoapods_package.json" )
162160
163161 purl = PackageURL .from_string ("pkg:cocoapods/KVLLibraries" )
164162 name = "KVLLibraries"
0 commit comments