test_sync_api_gateway.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from unittest import mock
  2. import pytest
  3. from clean_python.api_client import SyncApiGateway
  4. from clean_python.api_client import SyncApiProvider
  5. MODULE = "clean_python.api_client.api_provider"
  6. class TstSyncApiGateway(SyncApiGateway, path="foo/{id}"):
  7. pass
  8. @pytest.fixture
  9. def api_provider():
  10. return mock.MagicMock(spec_set=SyncApiProvider)
  11. @pytest.fixture
  12. def api_gateway(api_provider) -> SyncApiGateway:
  13. return TstSyncApiGateway(api_provider)
  14. def test_get(api_gateway: SyncApiGateway):
  15. actual = api_gateway.get(14)
  16. api_gateway.provider.request.assert_called_once_with("GET", "foo/14")
  17. assert actual is api_gateway.provider.request.return_value
  18. def test_add(api_gateway: SyncApiGateway):
  19. actual = api_gateway.add({"foo": 2})
  20. api_gateway.provider.request.assert_called_once_with(
  21. "POST", "foo/", json={"foo": 2}
  22. )
  23. assert actual is api_gateway.provider.request.return_value
  24. def test_remove(api_gateway: SyncApiGateway):
  25. actual = api_gateway.remove(2)
  26. api_gateway.provider.request.assert_called_once_with("DELETE", "foo/2")
  27. assert actual is True
  28. def test_remove_does_not_exist(api_gateway: SyncApiGateway):
  29. api_gateway.provider.request.return_value = None
  30. actual = api_gateway.remove(2)
  31. assert actual is False