44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
|
from unittest.mock import patch
|
||
|
|
||
|
from pytest import fixture
|
||
|
|
||
|
from .client import request
|
||
|
|
||
|
|
||
|
def test_directus_request(sample, _response):
|
||
|
assert _response == sample.response
|
||
|
|
||
|
def test_directus_request_client_setup(sample, _response, mock_get_request_client):
|
||
|
mock_get_request_client.assert_called_once_with(
|
||
|
base_url = sample.base_url,
|
||
|
headers = { 'Authorization': f'bearer {sample.api_token}' },
|
||
|
)
|
||
|
|
||
|
|
||
|
#####################################################################
|
||
|
|
||
|
@fixture(name='_response')
|
||
|
def fixture_response(sample):
|
||
|
return request(
|
||
|
method = sample.method,
|
||
|
endpoint = sample.endpoint,
|
||
|
**sample.payload,
|
||
|
)
|
||
|
|
||
|
#####################################################################
|
||
|
|
||
|
@fixture(name='mock_getenv', autouse=True)
|
||
|
def fixture_mock_getenv(sample):
|
||
|
with patch('scwrypts.http.directus.client.getenv',) as mock:
|
||
|
mock.side_effect = lambda name: {
|
||
|
'DIRECTUS__BASE_URL': sample.base_url,
|
||
|
'DIRECTUS__API_TOKEN': sample.api_token,
|
||
|
}[name]
|
||
|
yield mock
|
||
|
|
||
|
@fixture(name='mock_get_request_client', autouse=True)
|
||
|
def fixture_mock_get_request_client(sample):
|
||
|
with patch('scwrypts.http.directus.client.get_request_client') as mock:
|
||
|
mock.return_value = lambda method, endpoint, **kwargs: sample.response
|
||
|
yield mock
|