Coverage for tests/test_companies.py: 100%
29 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 11:17 +0200
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 11:17 +0200
1"""Tests du sous-client companies (synchrone et asynchrone)."""
3from __future__ import annotations
5from unittest.mock import AsyncMock, MagicMock
7from henrri_connect.connect import (
8 AsyncHenrriClient, SyncHenrriClient, # type: ignore[import]
9)
10from tests.conftest import COMPANY_JSON, make_response
13class TestSyncCompanies:
14 """Tests du sous-client companies (synchrone)."""
15 def test_get_retourne_company(
16 self, sync_client: SyncHenrriClient, mock_http: MagicMock
17 ) -> None:
18 """
19 Test de la methode get.
21 Tests:
22 - La compagnie est retournee
23 """
24 mock_http.request.return_value = make_response(COMPANY_JSON)
26 company = sync_client.companies.get(42)
28 assert company.id == 42
29 assert company.name == "Ma Société"
30 args = mock_http.request.call_args
31 assert args.args[0] == "GET"
32 assert "/v1/companies/42" in args.args[1]
34 def test_get_address(
35 self, sync_client: SyncHenrriClient, mock_http: MagicMock
36 ) -> None:
37 """
38 Test de la methode get_address.
40 Tests:
41 - L'adresse est retournee
42 """
43 mock_http.request.return_value = make_response(
44 {"id": 1, "city": "Paris", "isPostCodeShared": False}
45 )
47 address = sync_client.companies.get_address(42)
49 assert address.city == "Paris"
50 args = mock_http.request.call_args
51 assert "/v1/companies/42/address" in args.args[1]
54class TestAsyncCompanies:
55 """Tests du sous-client companies (asynchrone)."""
56 async def test_get_retourne_company(
57 self, async_client: AsyncHenrriClient, mock_async_http: AsyncMock
58 ) -> None:
59 """
60 Test de la methode get et de son retour.
62 Tests:
63 - La compagnie est retournee
64 """
65 mock_async_http.request.return_value = make_response(COMPANY_JSON)
67 company = await async_client.companies.get(42)
69 assert company.id == 42
70 assert company.name == "Ma Société"
72 async def test_get_address(
73 self, async_client: AsyncHenrriClient, mock_async_http: AsyncMock
74 ) -> None:
75 """
76 Test de la methode get_address.
78 Tests:
79 - L'adresse est retournee
80 """
81 mock_async_http.request.return_value = make_response(
82 {"id": 1, "city": "Lyon", "isPostCodeShared": False}
83 )
85 address = await async_client.companies.get_address(42)
87 assert address.city == "Lyon"