Skip to content

Instantly share code, notes, and snippets.

@inklesspen
Created October 21, 2012 07:18
Show Gist options
  • Select an option

  • Save inklesspen/3926222 to your computer and use it in GitHub Desktop.

Select an option

Save inklesspen/3926222 to your computer and use it in GitHub Desktop.
import os
import pytest
from sqlalchemy import engine_from_config
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from ..models import (
DBSession,
Base,
User,
)
def pytest_sessionstart(session):
# The default difficulty is good for regular use, but slows down the tests too much.
User.set_bcrypt_difficulty(2)
config_uri = os.path.abspath(session.config.option.ini)
setup_logging(config_uri)
settings = get_appsettings(config_uri)
session.config.app_settings = settings
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.create_all(engine)
session.config.sql_engine = engine
def pytest_sessionfinish(session):
engine = session.config.sql_engine
Base.metadata.drop_all(engine)
def pytest_addoption(parser):
parser.addoption("--ini", action="store", metavar="INI_FILE", help="use INI_FILE to configure SQLAlchemy")
def pytest_funcarg__sqlengine(request):
return request.config.sql_engine
@pytest.fixture
def appsettings(request):
request.cls.appsettings = request.config.app_settings
return request.config.app_settings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment