11import unittest .mock
22
3+ import httpx
34import pytest
4- import requests
55
66from src .cache import CacheService
77from src .exceptions import FlagsmithUnknownKeyError
1616)
1717
1818
19- def test_refresh_makes_correct_http_call (mocker ):
19+ @pytest .mark .asyncio
20+ async def test_refresh_makes_correct_http_call (mocker ):
2021 # Given
21- mocked_get = mocker .patch ("src.cache.requests.Session .get" )
22+ mocked_get = mocker .patch ("src.cache.httpx.AsyncClient .get" )
2223 mocked_get .side_effect = [
23- unittest .mock .AsyncMock (text = '{"key1": "value1"}' ),
24- unittest .mock .AsyncMock (text = '{"key2": "value2"}' ),
24+ unittest .mock .Mock (text = '{"key1": "value1"}' ),
25+ unittest .mock .Mock (text = '{"key2": "value2"}' ),
2526 ]
2627 mocked_datetime = mocker .patch ("src.cache.datetime" )
28+
2729 cache_service = CacheService (settings )
2830
2931 # When
30- cache_service .refresh ()
32+ await cache_service .refresh ()
3133
3234 # Then
3335 mocked_get .assert_has_calls (
3436 [
3537 mocker .call (
36- f"{ settings .api_url } /environment-document/" ,
38+ url = f"{ settings .api_url } /environment-document/" ,
3739 headers = {
3840 "X-Environment-Key" : settings .environment_key_pairs [
3941 0
4042 ].server_side_key
4143 },
42- )
43- ],
44- [
44+ ),
4545 mocker .call (
46- f"{ settings .api_url } /environment-document/" ,
46+ url = f"{ settings .api_url } /environment-document/" ,
4747 headers = {
4848 "X-Environment-Key" : settings .environment_key_pairs [
4949 1
5050 ].server_side_key
5151 },
52- )
53- ],
52+ ),
53+ ]
5454 )
5555 assert cache_service .last_updated_at == mocked_datetime .now .return_value
5656
5757
58- def test_refresh_does_not_update_last_updated_at_if_any_request_fails (mocker ):
58+ @pytest .mark .asyncio
59+ async def test_refresh_does_not_update_last_updated_at_if_any_request_fails (mocker ):
5960 # Given
60- mocked_session = mocker .patch ("src.cache.requests.Session " )
61- mocked_session . return_value . get .side_effect = [
62- mocker . MagicMock ( ),
63- requests . exceptions . HTTPError ( ),
61+ mocked_get = mocker .patch ("src.cache.httpx.AsyncClient.get " )
62+ mocked_get .side_effect = [
63+ httpx . ConnectTimeout ( "timeout" ),
64+ unittest . mock . Mock ( text = '{"key2": "value2"}' ),
6465 ]
6566 cache_service = CacheService (settings )
6667
6768 # When
68- cache_service .refresh ()
69+ await cache_service .refresh ()
6970
7071 # Then
7172 assert cache_service .last_updated_at is None
7273
7374
74- def test_get_environment_works_correctly (mocker ):
75+ @pytest .mark .asyncio
76+ async def test_get_environment_works_correctly (mocker ):
7577 # Given
7678 cache_service = CacheService (settings )
7779 doc_1 = {"key1" : "value1" }
@@ -83,7 +85,7 @@ def test_get_environment_works_correctly(mocker):
8385 )
8486
8587 # When
86- cache_service .refresh ()
88+ await cache_service .refresh ()
8789
8890 # Next, test that get environment return correct document
8991 assert (
0 commit comments