Add temporary functiontal tests, that must be removed soon. Refactor tests: Remove outdated resource manager tests and add functional tests with Docker and Kafka integration - Deleted existing unit tests for ResourceManager. - Introduced new functional tests for single node operations with Redis and Kafka. - Added Docker Compose setup for test environment. - Implemented fixtures for Redis and Kafka consumers. - Created comprehensive tests for data publishing and slot management. - Added unit tests for DataManager and IngestorManager with mocked dependencies. - Included tests for OpcManager covering connection, subscription, and data change notifications.
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
import subprocess
|
|
from time import sleep
|
|
from typing import Generator
|
|
import uuid
|
|
from kafka import KafkaConsumer
|
|
import pytest
|
|
from redis import Redis
|
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True)
|
|
def docker_compose():
|
|
"""Sobe os containers antes dos testes e derruba depois."""
|
|
print("\n🚀 Subindo Docker Compose...")
|
|
subprocess.run(["docker", "compose", "up", "-d"], check=True)
|
|
|
|
print("⏳ Aguardando containers ficarem prontos...")
|
|
sleep(15) # ajuste conforme necessário
|
|
|
|
yield # os testes rodam aqui
|
|
|
|
print("\n🧹 Derrubando Docker Compose...")
|
|
subprocess.run(["docker", "compose", "down"], check=True)
|
|
|
|
|
|
@pytest.fixture()
|
|
def redis_client():
|
|
redis = Redis(host="localhost", port=6379, decode_responses=True)
|
|
redis.flushdb()
|
|
|
|
yield redis
|
|
|
|
# Limpa o banco de dados após os testes
|
|
redis.flushdb()
|
|
redis.close()
|
|
|
|
|
|
def kafka_searcher(topic) -> Generator[KafkaConsumer, None, None]:
|
|
consumer = KafkaConsumer(
|
|
topic,
|
|
bootstrap_servers="localhost:9092",
|
|
group_id=f"test-group-{uuid.uuid4()}",
|
|
auto_offset_reset="earliest", # Começa a consumir apenas mensagens novas
|
|
enable_auto_commit=True,
|
|
)
|
|
|
|
yield consumer
|
|
consumer.close()
|