Skip to content

Commit 045354d

Browse files
author
Stewart Miles
committed
Fixed Unity Asset Uploader unit test.
This changes unity_asset_uploader to no longer throw an exception if the response doesn't have a status field. The test has been fixed to correctly build the login response and all metadata responses. In addition, this moves all assertions in the test to use the unittest module so that failures are reported with useful error messages rather than simply "assetion failed". Change-Id: I6abb180330bb815568a7a43d4b3f7184317ab70a
1 parent 925fe3f commit 045354d

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

source/UnityAssetUploader/unity_asset_uploader.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -446,11 +446,12 @@ def upload_package(
446446
unity_version=unity_version,
447447
tools_version=tools_version)
448448
response_ob = session.upload_package(package_id, package_path)
449-
print("status={}".format(response_ob['status']))
450-
if response_ob['status'] != 'ok':
449+
status = response_ob.get('status', '<unknown>')
450+
print("status={}".format(status))
451+
if status != 'ok':
451452
raise RequestError(
452453
'Non-success response from Asset Store request: {}'.format(
453-
response_ob['status']))
454+
status))
454455
print(response_ob)
455456

456457

source/UnityAssetUploader/unity_asset_uploader_test.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,14 @@ def setUp(self):
5050
"/login?{}".format(self.parsed_params),
5151
headers={'Accept': 'application/json'}),
5252
call('GET',
53-
"/api/asset-store-tools/metadata/0.json?{}" +
54-
"&xunitysession=this_session_id".format(
53+
("/api/asset-store-tools/metadata/0.json?{}" +
54+
"&xunitysession=this_session_id").format(
5555
self.parsed_params),
5656
headers={'Accept': 'application/json'}),
5757
]
5858

5959
self.expected_metadata = {
60+
'status': 'ok',
6061
'xunitysession': 'this_session_id',
6162
'publisher': {
6263
'id': 'publisher_id',
@@ -107,7 +108,7 @@ def test_display_session_id(self, mock_stdout, mock_connection, mock_json):
107108

108109
mock_json.load.assert_called_with(
109110
mock_connection.return_value.getresponse.return_value)
110-
assert 'this_session_id' in mock_stdout.getvalue()
111+
self.assertIn('this_session_id', mock_stdout.getvalue())
111112

112113
@patch('unity_asset_uploader.json')
113114
@patch('unity_asset_uploader.client.HTTPSConnection')
@@ -124,11 +125,12 @@ def test_get_metadata(self, mock_stdout, mock_connection, mock_json):
124125
metadata = session.get_metadata()
125126

126127
request = mock_connection.return_value.request
127-
assert request.call_args_list == self.expected_login_and_metadata_calls
128+
self.assertEqual(self.expected_login_and_metadata_calls,
129+
request.call_args_list)
128130

129131
mock_json.load.assert_called_with(
130132
mock_connection.return_value.getresponse.return_value)
131-
assert metadata == self.expected_metadata
133+
self.assertEqual(self.expected_metadata, metadata)
132134

133135
@patch('unity_asset_uploader.json')
134136
@patch('unity_asset_uploader.client.HTTPSConnection')
@@ -145,16 +147,17 @@ def test_display_publisher_info(
145147
None)
146148

147149
request = mock_connection.return_value.request
148-
assert request.call_args_list == self.expected_login_and_metadata_calls
150+
self.assertEqual(self.expected_login_and_metadata_calls,
151+
request.call_args_list)
149152

150153
mock_json.load.assert_called_with(
151154
mock_connection.return_value.getresponse.return_value)
152155

153156
out = mock_stdout.getvalue()
154-
assert 'publisher_id' in out
155-
assert 'publisher_name' in out
156-
assert '123' in out
157-
assert '456' in out
157+
self.assertIn('publisher_id', out)
158+
self.assertIn('publisher_name', out)
159+
self.assertIn('123', out)
160+
self.assertIn('456', out)
158161

159162
@patch('unity_asset_uploader.json')
160163
@patch('unity_asset_uploader.client.HTTPSConnection')
@@ -170,7 +173,8 @@ def test_display_listings(self, mock_stdout, mock_connection, mock_json):
170173
None)
171174

172175
request = mock_connection.return_value.request
173-
assert request.call_args_list == self.expected_login_and_metadata_calls
176+
self.assertEqual(self.expected_login_and_metadata_calls,
177+
request.call_args_list)
174178

175179
mock_json.load.assert_called_with(
176180
mock_connection.return_value.getresponse.return_value)
@@ -179,7 +183,7 @@ def test_display_listings(self, mock_stdout, mock_connection, mock_json):
179183
expected_456 = self.expected_metadata['packages']['456']
180184
package_two_values = expected_456.keys
181185
for key in unity_asset_uploader.LISTING_TRAITS:
182-
assert "{}={}".format(key, expected_456[key]) in out
186+
self.assertIn("{}={}".format(key, expected_456[key]), out)
183187

184188
@patch('unity_asset_uploader.open')
185189
@patch('unity_asset_uploader.json')
@@ -221,7 +225,7 @@ def test_upload_package_draft(
221225
headers={'Accept': 'application/json'}))
222226

223227
request = mock_connection.return_value.request
224-
assert request.call_args_list == expected_call_args
228+
self.assertEqual(expected_call_args, request.call_args_list)
225229

226230
mock_json.load.assert_called_with(
227231
mock_connection.return_value.getresponse.return_value)
@@ -249,10 +253,11 @@ def test_upload_package_published_error(
249253
'456',
250254
'/mock_project2/mock_path.unityasset')
251255

252-
assert 'no draft created for package 456' in cm.exception.output
256+
self.assertIn('no draft created for package 456', cm.exception.output)
253257

254258
request = mock_connection.return_value.request
255-
assert request.call_args_list == self.expected_login_and_metadata_calls
259+
self.assertEqual(self.expected_login_and_metadata_calls,
260+
request.call_args_list)
256261

257262
mock_json.load.assert_called_with(
258263
mock_connection.return_value.getresponse.return_value)
@@ -279,10 +284,11 @@ def test_upload_package_not_found_error(
279284
'789',
280285
'/mock_project3/mock_path.unityasset')
281286
error_msg = 'could not find package with version ID 789'
282-
assert error_msg in cm.exception.output
287+
self.assertIn(error_msg, cm.exception.output)
283288

284289
request = mock_connection.return_value.request
285-
assert request.call_args_list == self.expected_login_and_metadata_calls
290+
self.assertEqual(self.expected_login_and_metadata_calls,
291+
request.call_args_list)
286292

287293
mock_json.load.assert_called_with(
288294
mock_connection.return_value.getresponse.return_value)

0 commit comments

Comments
 (0)