"""Test api client.""" from unittest.mock import Mock import requests from product_review.lib.vapi.api_client import ApiClient def build_api_client(): """Build api client.""" base_url = "http://api.notreal.com" access_token = "my-access-token" return ApiClient(base_url, access_token) def test_request_args(): """Test request args.""" api_client = build_api_client() requests.request = Mock() api_client.request("get", "endpoint") requests.request.assert_called_with( "get", "http://api.notreal.com/endpoint", headers={"access-token": "my-access-token", "version": ApiClient.API_VERSION}, ) def test_request_response(): """Test request response.""" api_client = build_api_client() mock_response = Mock(status_code=200) requests.request = Mock(return_value=mock_response) assert api_client.request("get", "endpoint") == mock_response def test_get_calls_request(): """Test get calls request.""" api_client = build_api_client() api_client.request = Mock() api_client.get("endpoint", foo="bar") api_client.request.assert_called_with("get", "endpoint", foo="bar") def test_post_calls_request(): """Test post calls request.""" api_client = build_api_client() api_client.request = Mock() api_client.post("endpoint", foo="bar") api_client.request.assert_called_with("post", "endpoint", foo="bar") def test_put_calls_request(): """Test put calls request.""" api_client = build_api_client() api_client.request = Mock() api_client.put("endpoint", foo="bar") api_client.request.assert_called_with("put", "endpoint", foo="bar") def test_delete_calls_request(): """Test delete calls request.""" api_client = build_api_client() api_client.request = Mock() api_client.delete("endpoint", foo="bar") api_client.request.assert_called_with("delete", "endpoint", foo="bar")