示例#1
0
def init(session: "Session_") -> Iterator[None]:
    from .models import Base, User, engine, Item
    from smorest_sfs.plugins.queries.abstract import RenderableStatementABC
    from sqlalchemy.dialects.sqlite import dialect

    registered = False
    if (hasattr(RenderableStatementABC, "_session")
            and getattr(RenderableStatementABC, "_session") is not None):
        pre_session = getattr(RenderableStatementABC, "_session")
        pre_dialect = getattr(RenderableStatementABC, "_DIALECT")
        registered = True
    RenderableStatementABC.init_statement(session, dialect)

    mixer = Mixer(session=session)
    Base.metadata.create_all(engine)
    mixer.cycle(5).blend(
        User,
        name=mixer.sequence("name{0}"),
        nickname=mixer.sequence("nickname{0}"),
        items=mixer.sequence(
            lambda x:
            [Item(name="name{0}".format(3 * x + i)) for i in range(3)]),
    )
    yield
    if registered:
        RenderableStatementABC.init_statement(pre_session, pre_dialect)
    Base.metadata.drop_all(engine)
示例#2
0
def test_cycle(session):
    from mixer.backend.sqlalchemy import Mixer

    mixer = Mixer(session=session, commit=True)
    profile1 = mixer.blend('tests.test_sqlalchemy.Profile', name='first')
    profile2 = mixer.blend('tests.test_sqlalchemy.Profile', name='second')
    users = mixer.cycle(2).blend(User, profile=(p for p in (profile1, profile2)))
    assert len(users) == 2
    assert users[0].profile.name == 'first'
    assert users[1].profile.name == 'second'
示例#3
0
def test_cycle(session):
    from mixer.backend.sqlalchemy import Mixer

    mixer = Mixer(session=session, commit=True)
    profile1 = mixer.blend('tests.test_sqlalchemy.Profile', name='first')
    profile2 = mixer.blend('tests.test_sqlalchemy.Profile', name='second')
    users = mixer.cycle(2).blend(User, profile=(p for p in (profile1, profile2)))
    assert len(users) == 2
    assert users[0].profile.name == 'first'
    assert users[1].profile.name == 'second'
示例#4
0
def email_templates(
    flask_app: Flask,
    temp_db_instance_helper: INS_HELPER["EmailTemplate"],
    sqla_mixer: SqlaMixer,
) -> Iterator[List["EmailTemplate"]]:
    # pylint: disable=W0613
    from smorest_sfs.modules.email_templates.models import EmailTemplate

    for _ in temp_db_instance_helper(*sqla_mixer.cycle(3).blend(
            EmailTemplate, name=sqla_mixer.sequence("{0}_test_name"))):
        yield _
示例#5
0
def groups(
    flask_app: Flask,
    temp_db_instance_helper: INS_HELPER["Group"],
    sqla_mixer: SqlaMixer,
) -> Iterator[List["Group"]]:
    from smorest_sfs.modules.groups.models import Group

    for _ in temp_db_instance_helper(
        *sqla_mixer.cycle(3).blend(Group, name=sqla_mixer.sequence("{0}_test_name"))
    ):
        yield _