|
1 | 1 | """Tests for the datagouv_api_client helper.""" |
2 | 2 |
|
3 | 3 | import os |
| 4 | +from unittest.mock import AsyncMock, MagicMock, patch |
4 | 5 |
|
5 | 6 | import pytest |
6 | 7 |
|
7 | 8 | from helpers import datagouv_api_client |
| 9 | +from helpers.user_agent import USER_AGENT |
8 | 10 |
|
9 | 11 |
|
10 | 12 | @pytest.fixture |
@@ -34,6 +36,28 @@ async def test_get_dataset_metadata(self, known_dataset_id): |
34 | 36 | assert "title" in metadata |
35 | 37 | assert metadata["title"] is not None |
36 | 38 |
|
| 39 | + async def test_get_dataset_metadata_sends_user_agent(self, known_dataset_id): |
| 40 | + """Test that get_dataset_metadata creates a client with User-Agent header.""" |
| 41 | + mock_client = MagicMock() |
| 42 | + mock_response = MagicMock() |
| 43 | + mock_response.json.return_value = { |
| 44 | + "id": known_dataset_id, |
| 45 | + "title": "Test Dataset", |
| 46 | + } |
| 47 | + mock_response.raise_for_status = MagicMock() |
| 48 | + mock_client.get = AsyncMock(return_value=mock_response) |
| 49 | + mock_client.aclose = AsyncMock(return_value=None) |
| 50 | + |
| 51 | + with patch( |
| 52 | + "helpers.datagouv_api_client.httpx.AsyncClient", |
| 53 | + return_value=mock_client, |
| 54 | + ) as mock_async_client: |
| 55 | + await datagouv_api_client.get_dataset_metadata( |
| 56 | + known_dataset_id, session=None |
| 57 | + ) |
| 58 | + |
| 59 | + mock_async_client.assert_called_once_with(headers={"User-Agent": USER_AGENT}) |
| 60 | + |
37 | 61 | async def test_get_resource_metadata(self, known_resource_id): |
38 | 62 | """Test fetching resource metadata.""" |
39 | 63 | metadata = await datagouv_api_client.get_resource_metadata(known_resource_id) |
|
0 commit comments