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

1"""Tests du sous-client companies (synchrone et asynchrone).""" 

2 

3from __future__ import annotations 

4 

5from unittest.mock import AsyncMock, MagicMock 

6 

7from henrri_connect.connect import ( 

8 AsyncHenrriClient, SyncHenrriClient, # type: ignore[import] 

9) 

10from tests.conftest import COMPANY_JSON, make_response 

11 

12 

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. 

20 

21 Tests: 

22 - La compagnie est retournee 

23 """ 

24 mock_http.request.return_value = make_response(COMPANY_JSON) 

25 

26 company = sync_client.companies.get(42) 

27 

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] 

33 

34 def test_get_address( 

35 self, sync_client: SyncHenrriClient, mock_http: MagicMock 

36 ) -> None: 

37 """ 

38 Test de la methode get_address. 

39 

40 Tests: 

41 - L'adresse est retournee 

42 """ 

43 mock_http.request.return_value = make_response( 

44 {"id": 1, "city": "Paris", "isPostCodeShared": False} 

45 ) 

46 

47 address = sync_client.companies.get_address(42) 

48 

49 assert address.city == "Paris" 

50 args = mock_http.request.call_args 

51 assert "/v1/companies/42/address" in args.args[1] 

52 

53 

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. 

61 

62 Tests: 

63 - La compagnie est retournee 

64 """ 

65 mock_async_http.request.return_value = make_response(COMPANY_JSON) 

66 

67 company = await async_client.companies.get(42) 

68 

69 assert company.id == 42 

70 assert company.name == "Ma Société" 

71 

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. 

77 

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 ) 

84 

85 address = await async_client.companies.get_address(42) 

86 

87 assert address.city == "Lyon"