def test_changed_entity(entity): """Проверка отслеживания изменения состояния.""" entity.test_attr = 44 assert entity.id_ == domain.ID("a", "b", "c") assert entity.test_attr == 44 assert entity.changed_state() == {"test_attr": 44}
def test_cleared_entity(entity): """Проверка пустого измененного состояния после очистки.""" entity.clear() assert entity.id_ == domain.ID("a", "b", "c") assert entity.test_attr == 44 assert isinstance(entity.changed_state(), dict) assert not entity.changed_state()
"""Тесты базовых классов взаимодействия с внешней инфраструктурой.""" import asyncio import logging import random import pytest from poptimizer.shared import adapters, domain TEST_ID = domain.ID("a", "b", "c") TEST_ENTITY = domain.BaseEntity(TEST_ID) class TestLog: """Тестовый класс для проверки работы логгера.""" logger = adapters.AsyncLogger() @pytest.mark.asyncio async def test_async_logger(caplog): """Работа и автоматическое присвоение имени асинхронному логгеру.""" caplog.set_level(logging.INFO) test_obj = TestLog() test_obj.logger("test_message") await asyncio.sleep(0.01) assert caplog.record_tuples == [("TestLog", 20, "test_message")]
def create_id(group: str, name: Optional[str] = None) -> domain.ID: """Создает ID таблицы.""" if name is None: name = group return domain.ID(PACKAGE, group, name)
def make_table(): """Создает пустую тестовую таблицу.""" id_ = domain.ID(base.PACKAGE, "test", "e") return TestTable(id_)
def test_wrong_group(): """Проверка исключения при некорректном указании группе.""" id_ = domain.ID(base.PACKAGE, "d", "e") with pytest.raises(base.TableWrongIDError): TestTable(id_)
def test_wrong_package(): """Проверка исключения при некорректном указании пакета.""" id_ = domain.ID("a", "b", "c") with pytest.raises(base.TableWrongIDError): TestTable(id_)
def test_create_id_no_name(): """Проверка создание ID без указания названия.""" assert base.create_id("ff") == domain.ID(base.PACKAGE, "ff", "ff")
def test_create_id(): """Проверка создание ID.""" assert base.create_id("f", "g") == domain.ID(base.PACKAGE, "f", "g")
def test_new_entity(entity): """Только созданный доменный объект имеет пустое изменное состояние.""" assert entity.id_ == domain.ID("a", "b", "c") assert entity.test_attr == 42 assert isinstance(entity.changed_state(), dict) assert not entity.changed_state()
def create_entity(): """Создает доменный объект для тестов.""" id_ = domain.ID("a", "b", "c") return Entity(id_, 42)