def test_upload_package_not_found_error( self, mock_stdout, mock_connection, mock_json, mock_open): getresponse = mock_connection.return_value.getresponse.return_value getresponse.status = HTTPStatus.OK mock_json.load.return_value = self.expected_metadata mock_file = MagicMock() read = mock_open.return_value.__enter__.return_value.read read.return_value = 'encoded_package_body' with self.assertRaises(unity_asset_uploader.InvalidRequestError) as cm: unity_asset_uploader.upload_package( unity_username, unity_password, None, '789', '/mock_project3/mock_path.unityasset') error_msg = 'could not find package with version ID 789' assert error_msg in cm.exception.output request = mock_connection.return_value.request assert request.call_args_list == self.expected_login_and_metadata_calls mock_json.load.assert_called_with( mock_connection.return_value.getresponse.return_value) mock_open.assert_not_called()
def test_upload_package(self, mock_stdout): unity_asset_uploader.upload_package(unity_username, unity_password, None, unity_package_id, unity_package_path) out = mock_stdout.getvalue().strip() assert "{'status': 'ok'}" in out
def test_upload_package_draft(self, mock_stdout, mock_connection, mock_json, mock_open): getresponse = mock_connection.return_value.getresponse.return_value getresponse.status = HTTPStatus.OK mock_json.load.return_value = self.expected_metadata mock_file = MagicMock() read = mock_open.return_value.__enter__.return_value.read read.return_value = 'encoded_package_body' unity_asset_uploader.upload_package( unity_username, unity_password, None, '123', '/mock_project/mock_path.unityasset') expected_123 = self.expected_metadata['packages']['123'] upload_params = parse.urlencode({ 'xunitysession': 'this_session_id', 'root_guid': expected_123['root_guid'], 'root_path': expected_123['root_path'], 'project_path': expected_123['project_path'], }) parsed_params = "{}&{}".format(upload_params, self.parsed_params) pat = "/api/asset-store-tools/package/version_123/unitypackage.json?{}" expected_call_args = list.copy(self.expected_login_and_metadata_calls) expected_call_args.append( call('PUT', pat.format(parsed_params), 'encoded_package_body', headers={'Accept': 'application/json'})) request = mock_connection.return_value.request self.assertEqual(expected_call_args, request.call_args_list) mock_json.load.assert_called_with( mock_connection.return_value.getresponse.return_value) mock_open.assert_called_with('/mock_project/mock_path.unityasset', 'rb')
def test_upload_package_published_error(self, mock_stdout, mock_connection, mock_json, mock_open): getresponse = mock_connection.return_value.getresponse.return_value getresponse.status = HTTPStatus.OK mock_json.load.return_value = self.expected_metadata mock_file = MagicMock() read = mock_open.return_value.__enter__.return_value.read read.return_value = 'encoded_package_body' with self.assertRaises(unity_asset_uploader.InvalidRequestError) as cm: unity_asset_uploader.upload_package( unity_username, unity_password, None, '456', '/mock_project2/mock_path.unityasset') self.assertIn('no draft created for package 456', cm.exception.output) request = mock_connection.return_value.request self.assertEqual(self.expected_login_and_metadata_calls, request.call_args_list) mock_json.load.assert_called_with( mock_connection.return_value.getresponse.return_value) mock_open.assert_not_called()