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/integration/test_redis.py | |
parent | 7ceb675bb69917fae182ebdaf9a2298a308c3fa4 (diff) | |
parent | 2de7f9f038dd62e097e490cb3fa609067c1c3c36 (diff) | |
download | kombu-py310.tar.gz |
Merge branch 'main' into py310py310
Diffstat (limited to 't/integration/test_redis.py')
-rw-r--r-- | t/integration/test_redis.py | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/t/integration/test_redis.py b/t/integration/test_redis.py index 72ba803f..b2ae5ab8 100644 --- a/t/integration/test_redis.py +++ b/t/integration/test_redis.py @@ -1,12 +1,17 @@ +from __future__ import annotations + import os +import socket from time import sleep import pytest import redis import kombu +from kombu.transport.redis import Transport -from .common import BaseExchangeTypes, BasePriority, BasicFunctionality +from .common import (BaseExchangeTypes, BaseMessage, BasePriority, + BasicFunctionality) def get_connection( @@ -55,7 +60,11 @@ def test_failed_credentials(): @pytest.mark.env('redis') @pytest.mark.flaky(reruns=5, reruns_delay=2) class test_RedisBasicFunctionality(BasicFunctionality): - pass + def test_failed_connection__ConnectionError(self, invalid_connection): + # method raises transport exception + with pytest.raises(redis.exceptions.ConnectionError) as ex: + invalid_connection.connection + assert ex.type in Transport.connection_errors @pytest.mark.env('redis') @@ -120,3 +129,24 @@ class test_RedisPriority(BasePriority): assert received_messages[0] == {'msg': 'second'} assert received_messages[1] == {'msg': 'first'} assert received_messages[2] == {'msg': 'third'} + + +@pytest.mark.env('redis') +@pytest.mark.flaky(reruns=5, reruns_delay=2) +class test_RedisMessage(BaseMessage): + pass + + +@pytest.mark.env('redis') +def test_RedisConnectTimeout(monkeypatch): + # simulate a connection timeout for a new connection + def connect_timeout(self): + raise socket.timeout + monkeypatch.setattr( + redis.connection.Connection, "_connect", connect_timeout) + + # ensure the timeout raises a TimeoutError + with pytest.raises(redis.exceptions.TimeoutError): + # note the host/port here is irrelevant because + # connect will raise a socket.timeout + kombu.Connection('redis://localhost:12345').connect() |