mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
56 lines
2 KiB
Python
56 lines
2 KiB
Python
import pytest
|
|
from epc_api.client import EpcClient
|
|
from model_data.downloader import pagenated_epc_download
|
|
|
|
# Mock EPC search response
|
|
mock_epc_response = {
|
|
"rows": [
|
|
{"data1": "value1"},
|
|
{"data2": "value2"},
|
|
]
|
|
}
|
|
|
|
|
|
class TestDownloader:
|
|
|
|
@pytest.fixture
|
|
def mock_client(self, mocker):
|
|
# mocker is a wrapper around unittest.mock.Mock, extending with
|
|
# additional features specific to pytest
|
|
client = mocker.Mock(spec=EpcClient(auth_token="123"))
|
|
client.domestic.search.return_value = mock_epc_response
|
|
return client
|
|
|
|
def test_pagenated_epc_download_basic(self, mock_client):
|
|
params = {"address": "Test Address", "postcode": "AB12CD"}
|
|
page_size = len(mock_epc_response["rows"])
|
|
n_pages = 1
|
|
|
|
results = pagenated_epc_download(mock_client, params, page_size, n_pages, verbose=1)
|
|
|
|
assert len(results) == page_size * n_pages
|
|
assert results == mock_epc_response["rows"]
|
|
|
|
mock_client.domestic.search.assert_called_with(params=params, offset_from=0, size=page_size)
|
|
|
|
def test_pagenated_epc_download_multiple_pages(self, mock_client):
|
|
params = {"address": "Test Address", "postcode": "AB12CD"}
|
|
page_size = len(mock_epc_response["rows"])
|
|
n_pages = 2
|
|
|
|
results = pagenated_epc_download(mock_client, params, page_size, n_pages)
|
|
|
|
assert len(results) == page_size * n_pages
|
|
assert results == mock_epc_response["rows"] * n_pages
|
|
|
|
mock_client.domestic.search.assert_called_with(params=params, offset_from=page_size, size=page_size)
|
|
|
|
def test_pagenated_epc_download_search_returns_none(self, mock_client):
|
|
mock_client.domestic.search.return_value = None # Mock the search method to return None
|
|
params = {"address": "Test Address", "postcode": "AB12CD"}
|
|
page_size = 1
|
|
n_pages = 1
|
|
|
|
results = pagenated_epc_download(mock_client, params, page_size, n_pages)
|
|
|
|
assert results == []
|