@@ -12,10 +12,15 @@ class TestAsyncMethods:
1212 @pytest .mark .asyncio
1313 @patch ("whatsapp_api_client_python.API.Session.request" )
1414 async def test_async_methods (self , mock_raw_request ):
15- mock_response = Mock ()
16- mock_response .code = 200
17- mock_response .data = {"example" : {"key" : "value" }}
18- mock_raw_request .return_value = mock_response
15+ # Создаем мок-ответы с разными кодами статуса
16+ mock_responses = [
17+ Mock (code = 200 , data = {"example" : {"key" : "value" }}),
18+ Mock (code = 401 , data = {"error" : "Unauthorized" }),
19+ Mock (code = 403 , data = {"error" : "Forbidden" })
20+ ]
21+
22+ # Настраиваем мок чтобы он возвращал разные ответы по очереди
23+ mock_raw_request .side_effect = mock_responses * 10 # Умножаем чтобы хватило на все вызовы
1924
2025 methods_coroutines = []
2126 methods_coroutines .extend (self .account_methods ())
@@ -33,9 +38,14 @@ async def test_async_methods(self, mock_raw_request):
3338 response = await coro
3439 responses .append (response )
3540
41+ # Проверяем что все ответы имеют допустимые коды статуса
3642 for response in responses :
37- assert response .code == 200
38- assert response .data == {"example" : {"key" : "value" }}
43+ assert response .code in [200 , 401 , 403 ]
44+ # Для кода 200 проверяем данные, для 401/403 проверяем наличие ошибки
45+ if response .code == 200 :
46+ assert response .data == {"example" : {"key" : "value" }}
47+ else :
48+ assert "error" in response .data
3949
4050 assert mock_raw_request .call_count == len (responses )
4151
0 commit comments