31 lines
959 B
Python
31 lines
959 B
Python
import unittest
|
|
|
|
from bot.payment_providers.shared.http_client import (
|
|
HttpClientMixin,
|
|
_should_retry_transport_error,
|
|
)
|
|
|
|
|
|
class _DummyHttpClient(HttpClientMixin):
|
|
def __init__(self):
|
|
self._init_http_client(total_timeout=20)
|
|
|
|
|
|
class PaymentHttpClientTests(unittest.IsolatedAsyncioTestCase):
|
|
async def test_http_client_tracks_sent_headers_for_safe_retries(self):
|
|
client = _DummyHttpClient()
|
|
try:
|
|
session = await client._get_session()
|
|
self.assertFalse(session.connector.force_close)
|
|
self.assertTrue(session.trace_configs)
|
|
finally:
|
|
await client.close()
|
|
|
|
async def test_http_client_retries_only_before_headers_are_sent(self):
|
|
self.assertTrue(
|
|
_should_retry_transport_error(TimeoutError(), {"headers_sent": False})
|
|
)
|
|
self.assertFalse(
|
|
_should_retry_transport_error(TimeoutError(), {"headers_sent": True})
|
|
)
|