mirror of
https://github.com/xtekky/gpt4free.git
synced 2024-11-05 00:01:00 +00:00
add(quora/tests): Added a module with quora tests.
It is covering 3 scenarios: 1. test_successful_request 2. test_exponential backoff 3. test_too_many_requests Run tests: python -m unittest gpt4free/quora/tests/test_api.py
This commit is contained in:
parent
12a639fb2a
commit
cc9179eda8
0
gpt4free/quora/tests/__init__.py
Normal file
0
gpt4free/quora/tests/__init__.py
Normal file
38
gpt4free/quora/tests/test_api.py
Normal file
38
gpt4free/quora/tests/test_api.py
Normal file
@ -0,0 +1,38 @@
|
||||
import unittest
|
||||
import requests
|
||||
from unittest.mock import MagicMock
|
||||
from gpt4free.quora.api import retry_request
|
||||
|
||||
|
||||
class TestRetryRequest(unittest.TestCase):
|
||||
def test_successful_request(self):
|
||||
# Mock a successful request with a 200 status code
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
requests.get = MagicMock(return_value=mock_response)
|
||||
|
||||
# Call the function and assert that it returns the response
|
||||
response = retry_request(requests.get, "http://example.com", max_attempts=3)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_exponential_backoff(self):
|
||||
# Mock a failed request that succeeds after two retries
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
requests.get = MagicMock(side_effect=[requests.exceptions.RequestException] * 2 + [mock_response])
|
||||
|
||||
# Call the function and assert that it retries with exponential backoff
|
||||
with self.assertLogs() as logs:
|
||||
response = retry_request(requests.get, "http://example.com", max_attempts=3, delay=1)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertGreaterEqual(len(logs.output), 2)
|
||||
self.assertIn("Retrying in 1 seconds...", logs.output[0])
|
||||
self.assertIn("Retrying in 2 seconds...", logs.output[1])
|
||||
|
||||
def test_too_many_attempts(self):
|
||||
# Mock a failed request that never succeeds
|
||||
requests.get = MagicMock(side_effect=requests.exceptions.RequestException)
|
||||
|
||||
# Call the function and assert that it raises an exception after the maximum number of attempts
|
||||
with self.assertRaises(RuntimeError):
|
||||
retry_request(requests.get, "http://example.com", max_attempts=3)
|
Loading…
Reference in New Issue
Block a user