Пример #1
0
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}
Пример #2
0
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()
Пример #3
0
"""Тесты базовых классов взаимодействия с внешней инфраструктурой."""
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")]
Пример #4
0
def create_id(group: str, name: Optional[str] = None) -> domain.ID:
    """Создает ID таблицы."""
    if name is None:
        name = group
    return domain.ID(PACKAGE, group, name)
Пример #5
0
def make_table():
    """Создает пустую тестовую таблицу."""
    id_ = domain.ID(base.PACKAGE, "test", "e")
    return TestTable(id_)
Пример #6
0
def test_wrong_group():
    """Проверка исключения при некорректном указании группе."""
    id_ = domain.ID(base.PACKAGE, "d", "e")
    with pytest.raises(base.TableWrongIDError):
        TestTable(id_)
Пример #7
0
def test_wrong_package():
    """Проверка исключения при некорректном указании пакета."""
    id_ = domain.ID("a", "b", "c")
    with pytest.raises(base.TableWrongIDError):
        TestTable(id_)
Пример #8
0
def test_create_id_no_name():
    """Проверка создание ID без указания названия."""
    assert base.create_id("ff") == domain.ID(base.PACKAGE, "ff", "ff")
Пример #9
0
def test_create_id():
    """Проверка создание ID."""
    assert base.create_id("f", "g") == domain.ID(base.PACKAGE, "f", "g")
Пример #10
0
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()
Пример #11
0
def create_entity():
    """Создает доменный объект для тестов."""
    id_ = domain.ID("a", "b", "c")
    return Entity(id_, 42)