5 changed files with 263 additions and 39 deletions
@ -0,0 +1,107 @@ |
|||
import pytest |
|||
import redis |
|||
import valkey |
|||
|
|||
from socketio import async_redis_manager |
|||
from socketio.async_redis_manager import AsyncRedisManager |
|||
|
|||
|
|||
class TestAsyncRedisManager: |
|||
def test_redis_not_installed(self): |
|||
saved_redis = async_redis_manager.aioredis |
|||
async_redis_manager.aioredis = None |
|||
|
|||
with pytest.raises(RuntimeError): |
|||
AsyncRedisManager('redis://') |
|||
assert AsyncRedisManager('unix:///var/sock/redis.sock') is not None |
|||
|
|||
async_redis_manager.aioredis = saved_redis |
|||
|
|||
def test_valkey_not_installed(self): |
|||
saved_valkey = async_redis_manager.aiovalkey |
|||
async_redis_manager.aiovalkey = None |
|||
|
|||
with pytest.raises(RuntimeError): |
|||
AsyncRedisManager('valkey://') |
|||
assert AsyncRedisManager('unix:///var/sock/redis.sock') is not None |
|||
|
|||
async_redis_manager.aiovalkey = saved_valkey |
|||
|
|||
def test_redis_valkey_not_installed(self): |
|||
saved_redis = async_redis_manager.aioredis |
|||
async_redis_manager.aioredis = None |
|||
saved_valkey = async_redis_manager.aiovalkey |
|||
async_redis_manager.aiovalkey = None |
|||
|
|||
with pytest.raises(RuntimeError): |
|||
AsyncRedisManager('redis://') |
|||
with pytest.raises(RuntimeError): |
|||
AsyncRedisManager('valkey://') |
|||
with pytest.raises(RuntimeError): |
|||
AsyncRedisManager('unix:///var/sock/redis.sock') |
|||
|
|||
async_redis_manager.aioredis = saved_redis |
|||
async_redis_manager.aiovalkey = saved_valkey |
|||
|
|||
def test_bad_url(self): |
|||
with pytest.raises(ValueError): |
|||
AsyncRedisManager('http://localhost:6379') |
|||
|
|||
def test_redis_connect(self): |
|||
urls = [ |
|||
'redis://localhost:6379', |
|||
'redis://localhost:6379/0', |
|||
'redis://:password@localhost:6379', |
|||
'redis://:password@localhost:6379/0', |
|||
'redis://user:password@localhost:6379', |
|||
'redis://user:password@localhost:6379/0', |
|||
|
|||
'rediss://localhost:6379', |
|||
'rediss://localhost:6379/0', |
|||
'rediss://:password@localhost:6379', |
|||
'rediss://:password@localhost:6379/0', |
|||
'rediss://user:password@localhost:6379', |
|||
'rediss://user:password@localhost:6379/0', |
|||
|
|||
'unix:///var/sock/redis.sock', |
|||
'unix:///var/sock/redis.sock?db=0', |
|||
'unix://user@/var/sock/redis.sock', |
|||
'unix://user@/var/sock/redis.sock?db=0', |
|||
|
|||
'redis+sentinel://192.168.0.1:6379,192.168.0.2:6379/' |
|||
] |
|||
for url in urls: |
|||
c = AsyncRedisManager(url) |
|||
assert isinstance(c.redis, redis.asyncio.Redis) |
|||
|
|||
def test_valkey_connect(self): |
|||
saved_redis = async_redis_manager.aioredis |
|||
async_redis_manager.aioredis = None |
|||
|
|||
urls = [ |
|||
'valkey://localhost:6379', |
|||
'valkey://localhost:6379/0', |
|||
'valkey://:password@localhost:6379', |
|||
'valkey://:password@localhost:6379/0', |
|||
'valkey://user:password@localhost:6379', |
|||
'valkey://user:password@localhost:6379/0', |
|||
|
|||
'valkeys://localhost:6379', |
|||
'valkeys://localhost:6379/0', |
|||
'valkeys://:password@localhost:6379', |
|||
'valkeys://:password@localhost:6379/0', |
|||
'valkeys://user:password@localhost:6379', |
|||
'valkeys://user:password@localhost:6379/0', |
|||
|
|||
'unix:///var/sock/redis.sock', |
|||
'unix:///var/sock/redis.sock?db=0', |
|||
'unix://user@/var/sock/redis.sock', |
|||
'unix://user@/var/sock/redis.sock?db=0', |
|||
|
|||
'valkey+sentinel://192.168.0.1:6379,192.168.0.2:6379/' |
|||
] |
|||
for url in urls: |
|||
c = AsyncRedisManager(url) |
|||
assert isinstance(c.redis, valkey.asyncio.Valkey) |
|||
|
|||
async_redis_manager.aioredis = saved_redis |
Loading…
Reference in new issue