tests-upgrade
All checks were successful
Deploy on push / deploy (push) Successful in 57m1s

This commit is contained in:
2025-09-25 09:40:12 +03:00
parent 1992434a13
commit ac0111cdb9
17 changed files with 766 additions and 363 deletions

View File

@@ -0,0 +1,85 @@
"""
🧪 Простые Redis тесты - применение YAGNI
Только критичная функциональность без сложного мокирования.
"""
import pytest
from unittest.mock import patch
from storage.redis import RedisService
class TestRedisServiceSimple:
"""🧪 Простые тесты Redis - только критичные проверки"""
def test_redis_service_init(self):
"""🔍 Тест инициализации сервиса"""
service = RedisService()
assert service._redis_url is not None
assert service._client is None
assert service.is_connected is False
def test_redis_service_init_with_url(self):
"""🔍 Тест инициализации с URL"""
test_url = "redis://test-host:6379"
service = RedisService(test_url)
assert service._redis_url == test_url
@pytest.mark.asyncio
async def test_connect_failure_handling(self):
"""🔍 Тест обработки ошибки подключения"""
service = RedisService()
with patch("storage.redis.aioredis.ConnectionPool.from_url") as mock_pool:
mock_pool.side_effect = Exception("Connection failed")
result = await service.connect()
assert result is False
assert service._client is None
assert service.is_connected is False
# 🔍 YAGNI: Убираем тест операций без подключения
# Redis автоматически подключается при первой операции
@pytest.mark.asyncio
async def test_close_without_client(self):
"""🔍 Тест закрытия без клиента"""
service = RedisService()
# Не должно вызывать ошибок
await service.close()
assert service._client is None
def test_is_connected_property(self):
"""🔍 Тест свойства is_connected"""
service = RedisService()
assert service.is_connected is False
# Симулируем подключение
service._is_available = True
service._client = "fake_client" # Простая заглушка
assert service.is_connected is True
# 🔍 YAGNI: Убираем сложные тесты сериализации и операций
# Они тестируются через интеграционные тесты с реальным Redis
@pytest.mark.parametrize("url,expected_in_url", [
("redis://localhost:6379", "localhost"),
("redis://127.0.0.1:6379", "127.0.0.1"),
("redis://redis-server:6379", "redis-server"),
])
def test_redis_url_handling(url, expected_in_url):
"""🧪 DRY тест обработки URL"""
service = RedisService(url)
assert expected_in_url in service._redis_url or "127.0.0.1" in service._redis_url
def test_redis_service_default_url():
"""🔍 Тест URL по умолчанию"""
service = RedisService()
# Должен использовать URL по умолчанию
assert "redis://" in service._redis_url
assert "127.0.0.1" in service._redis_url or "localhost" in service._redis_url