diff options
author | Asif Saif Uddin <auvipy@gmail.com> | 2023-04-08 22:45:08 +0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-08 22:45:08 +0600 |
commit | 973dc3790ac25b9da7b6d2641ac72d95470f6ed8 (patch) | |
tree | 9e7ba02d8520994a06efc37dde05fba722138189 /t/mocks.py | |
parent | 7ceb675bb69917fae182ebdaf9a2298a308c3fa4 (diff) | |
parent | 2de7f9f038dd62e097e490cb3fa609067c1c3c36 (diff) | |
download | kombu-py310.tar.gz |
Merge branch 'main' into py310py310
Diffstat (limited to 't/mocks.py')
-rw-r--r-- | t/mocks.py | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -1,9 +1,16 @@ +from __future__ import annotations + +import time from itertools import count +from typing import TYPE_CHECKING from unittest.mock import Mock from kombu.transport import base from kombu.utils import json +if TYPE_CHECKING: + from types import TracebackType + class _ContextMock(Mock): """Dummy class implementing __enter__ and __exit__ @@ -13,7 +20,12 @@ class _ContextMock(Mock): def __enter__(self): return self - def __exit__(self, *exc_info): + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None + ) -> None: pass @@ -191,3 +203,15 @@ class Transport(base.Transport): def close_connection(self, connection): connection.connected = False + + +class TimeoutingTransport(Transport): + recoverable_connection_errors = (TimeoutError,) + + def __init__(self, connect_timeout=1, **kwargs): + self.connect_timeout = connect_timeout + super().__init__(**kwargs) + + def establish_connection(self): + time.sleep(self.connect_timeout) + raise TimeoutError('timed out') |