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()
Exemple #2
0
    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
Exemple #3
0
    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')
Exemple #4
0
    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()