Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from contextlib import contextmanager
- import tempfile
- from unittest import mock
- import factory
- import pytest
- from betterevidence import models
- @pytest.fixture(scope="session")
- def engine(app_settings):
- from betterevidence.models.meta import Base
- from betterevidence.models import get_engine
- engine = get_engine(app_settings)
- Base.metadata.create_all(engine)
- return engine
- @pytest.fixture
- def connection(engine):
- connection = engine.connect()
- yield connection
- connection.close()
- @pytest.fixture
- def transaction(connection):
- transaction = connection.begin()
- yield transaction
- transaction.rollback()
- @pytest.fixture()
- def session(app_settings, connection, transaction):
- from sqlalchemy.orm import sessionmaker
- Session = sessionmaker()
- session = Session(bind=connection)
- return session
- @pytest.fixture(scope="session")
- def app_settings():
- yield {"secret": "secret", "sqlalchemy.url": "sqlite://"}
- @pytest.fixture(scope="session")
- def root_app_inner(app_settings):
- from betterevidence import main
- app = main({}, **app_settings)
- app.registry["dbsession_factory"].kw["bind"] = connection
- yield app
- @pytest.fixture
- def root_app(root_app_inner, connection):
- root_app_inner.registry["dbsession_factory"].kw["bind"] = connection
- yield root_app_inner
- @pytest.fixture
- def webtest(root_app, session):
- from webtest import TestApp
- return TestApp(root_app)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement