class ApiTest(IntegrationTest): def setUp(self): self.new_api = Api() def test_good_request(self): response = self.new_api.request('/account', 'get') self.assertEqual(response.status_code, 200)
class ApiTest(IntegrationTest): def setUp(self): self.new_api = Api(sandbox_mode=True) def test_good_request(self): response = self.new_api.request('/games', 'get') self.assertEqual(response.status_code, 200)
def test_create_auth(): """ Verifies that the default Client is used when all the tokens are not empty strings. """ api = Api() auth = api.create_auth('https://www.mkmapi.eu/ws/v1.1/output.json', app_token='app_token', app_secret='app_secret', access_token='access_token', access_token_secret='access_token_secret') assert isinstance(auth.client, Client) assert auth.client.client_key == 'app_token' assert auth.client.client_secret == 'app_secret' assert auth.client.resource_owner_key == 'access_token' assert auth.client.resource_owner_secret == 'access_token_secret'
def test_create_auth_with_empty_string_token(): """ Verifies that the custom MKMClient is used when access token and access token secret are empty strings. """ api = Api() auth = api.create_auth('https://www.mkmapi.eu/ws/v1.1/output.json', app_token='app_token', app_secret='app_secret', access_token='', access_token_secret='') assert isinstance(auth.client, MKMClient) assert auth.client.client_key == 'app_token' assert auth.client.client_secret == 'app_secret' assert auth.client.resource_owner_key == '' assert auth.client.resource_owner_secret == ''
def test_create_auth(): """ Verifies that the default Client is used when all the tokens are not empty strings. """ api = Api("https://api.cardmarket.com/ws/v1.1/output.json") auth = api.create_auth( "https://api.cardmarket.com/ws/v1.1/output.json", app_token="app_token", app_secret="app_secret", access_token="access_token", access_token_secret="access_token_secret", ) assert isinstance(auth.client, Client) assert auth.client.client_key == "app_token" assert auth.client.client_secret == "app_secret" assert auth.client.resource_owner_key == "access_token" assert auth.client.resource_owner_secret == "access_token_secret"
def test_create_auth_with_empty_string_token(): """ Verifies that the custom MKMClient is used when access token and access token secret are empty strings. """ api = Api("https://api.cardmarket.com/ws/v1.1/output.json") auth = api.create_auth( "https://api.cardmarket.com/ws/v1.1/output.json", app_token="app_token", app_secret="app_secret", access_token="", access_token_secret="", ) assert isinstance(auth.client, MKMClient) assert auth.client.client_key == "app_token" assert auth.client.client_secret == "app_secret" assert auth.client.resource_owner_key == "" assert auth.client.resource_owner_secret == ""
def test_request_with_auth_params(mocker): mocker.patch("mkmsdk.api.request") api = Api("https://sandbox.cardmarket.com/ws/v1.1/output.json") mocker.patch.object(api, 'create_auth') mocker.patch.object(api, 'handle_response') auth_params = { "app_token": "my_app_token", "app_secret": "my_app_secret", "access_token": "my_access_token", "access_token_secret": "my_access_token_secret" } api.request("/games", "get", auth_params=auth_params) api.create_auth.assert_called_with( "https://sandbox.cardmarket.com/ws/v1.1/output.json/games", app_token="my_app_token", app_secret="my_app_secret", access_token="my_access_token", access_token_secret="my_access_token_secret")
def setUp(self): self.new_api = Api(sandbox_mode=True)
def test_endpoint(): """Verifies the live endpoint is used by default.""" api = Api() expected_live_base_endpoint = 'https://www.mkmapi.eu/ws/v1.1/output.json' assert api.base_endpoint == expected_live_base_endpoint
def test_good_request(): """Verifies that a correctly formed api request returns 200.""" new_api = Api(_API_MAP["1.1"]["api_sandbox_root"]) response = new_api.request("/games", "get") assert response.status_code == 200
def setUp(self): self.new_api = Api()
def test_sandbox_mode(): """Verifies the sandbox endpoint is used when specified.""" sandbox_api = Api(sandbox_mode=True) expected_sandbox_base_endpoint = 'https://sandbox.mkmapi.eu/ws/v1.1/output.json' assert sandbox_api.base_endpoint == expected_sandbox_base_endpoint
def test_handle_request(mocked_response): api = Api("https://sandbox.cardmarket.com/ws/v1.1/output.json") mocked_response.status_code = 400 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 401 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 403 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 404 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 405 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 409 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 410 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 422 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 480 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 545 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 1001 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response)
def test_sandbox_mode(): """Verifies the sandbox endpoint is used when specified.""" sandbox_api = Api("https://sandbox.cardmarket.com/ws/v1.1/output.json") expected_sandbox_base_endpoint = "https://sandbox.cardmarket.com/ws/v1.1/output.json" assert sandbox_api.base_endpoint == expected_sandbox_base_endpoint
def test_endpoint(): """Verifies the live endpoint is used by default.""" api = Api("https://api.cardmarket.com/ws/v1.1/output.json") expected_live_base_endpoint = "https://api.cardmarket.com/ws/v1.1/output.json" assert api.base_endpoint == expected_live_base_endpoint
def test_handle_request(mocked_response): api = Api() mocked_response.status_code = 400 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 401 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 403 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 404 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 405 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 409 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 410 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 422 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 480 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 545 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response) mocked_response.status_code = 1001 with pytest.raises(exceptions.ConnectionError): api.handle_response(mocked_response)
def test_good_request(): """Verifies that a correctly formed api request returns 200.""" new_api = Api(sandbox_mode=True) response = new_api.request('/games', 'get') assert response.status_code == 200
def setUp(self): self.api = Api() self.response = mock.Mock() self.response.content = {}
class ApiTest(unittest.TestCase): def setUp(self): self.api = Api() self.response = mock.Mock() self.response.content = {} def test_create_auth(self): auth = self.api.create_auth('https://www.mkmapi.eu/ws/v1.1/output.json', app_token='app_token', app_secret='app_secret', access_token='access_token', access_token_secret='access_token_secret') self.assertIsInstance(auth.client, Client) self.assertEqual(auth.client.client_key, 'app_token') self.assertEqual(auth.client.client_secret, 'app_secret') self.assertEqual(auth.client.resource_owner_key, 'access_token') self.assertEqual(auth.client.resource_owner_secret, 'access_token_secret') def test_create_auth_with_empty_string_token(self): auth = self.api.create_auth('https://www.mkmapi.eu/ws/v1.1/output.json', app_token='app_token', app_secret='app_secret', access_token='', access_token_secret='') self.assertIsInstance(auth.client, MKMClient) self.assertEqual(auth.client.client_key, 'app_token') self.assertEqual(auth.client.client_secret, 'app_secret') self.assertEqual(auth.client.resource_owner_key, '') self.assertEqual(auth.client.resource_owner_secret, '') def test_missing_env_var_raise_exception_correctly(self): with mock.patch('mkmsdk.os') as os_mocked: os_mocked.environ = {} self.assertRaises(exceptions.MissingConfig, get_mkm_app_secret) def test_endpoint(self): expected_live_base_endpoint = 'https://www.mkmapi.eu/ws/v1.1/output.json' self.assertEqual(self.api.base_endpoint, expected_live_base_endpoint) def test_sandbox_mode(self): sandbox_api = Api(sandbox_mode=True) expected_sandbox_base_endpoint = 'https://sandbox.mkmapi.eu/ws/v1.1/output.json' self.assertEqual(sandbox_api.base_endpoint, expected_sandbox_base_endpoint) def test_redirection(self): self.response.status_code = 301 self.assertRaises(exceptions.Redirection, self.api.handle_response, self.response, self.response.content) self.response.status_code = 302 self.assertRaises(exceptions.Redirection, self.api.handle_response, self.response, self.response.content) self.response.status_code = 303 self.assertRaises(exceptions.Redirection, self.api.handle_response, self.response, self.response.content) self.response.status_code = 307 self.assertRaises(exceptions.Redirection, self.api.handle_response, self.response, self.response.content) def test_bad_request(self): self.response.status_code = 400 self.assertRaises(exceptions.BadRequest, self.api.handle_response, self.response, self.response.content) def test_unauthorized_access(self): self.response.status_code = 401 self.assertRaises(exceptions.UnauthorizedAccess, self.api.handle_response, self.response, self.response.content) def test_forbidden_access(self): self.response.status_code = 403 self.assertRaises(exceptions.ForbiddenAccess, self.api.handle_response, self.response, self.response.content) def test_resource_not_found(self): self.response.status_code = 404 self.assertRaises(exceptions.ResourceNotFound, self.api.handle_response, self.response, self.response.content) def test_method_not_allowed(self): self.response.status_code = 405 self.assertRaises(exceptions.MethodNotAllowed, self.api.handle_response, self.response, self.response.content) def test_resource_conflict(self): self.response.status_code = 409 self.assertRaises(exceptions.ResourceConflict, self.api.handle_response, self.response, self.response.content) def test_resource_gone(self): self.response.status_code = 410 self.assertRaises(exceptions.ResourceGone, self.api.handle_response, self.response, self.response.content) def test_resource_invalid(self): self.response.status_code = 422 self.assertRaises(exceptions.ResourceInvalid, self.api.handle_response, self.response, self.response.content) def test_client_error(self): self.response.status_code = 480 self.assertRaises(exceptions.ClientError, self.api.handle_response, self.response, self.response.content) def test_server_error(self): self.response.status_code = 545 self.assertRaises(exceptions.ServerError, self.api.handle_response, self.response, self.response.content) def test_unknown_error(self): self.response.status_code = 1001 self.assertRaises(exceptions.ConnectionError, self.api.handle_response, self.response, self.response.content)