123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # -*- coding: utf-8 -*-
- """Defines fixtures available to all tests."""
- import pytest
- from walle.app import create_app
- from walle.config.settings_test import TestConfig
- from walle.model.database import db as _db
- from webtest import TestApp
- from .factories import UserFactory
- @pytest.yield_fixture(scope='session')
- def app():
- """An application for the tests."""
- _app = create_app(TestConfig)
- # _app.config['LOGIN_DISABLED'] = True
- _app.login_manager.init_app(_app)
- ctx = _app.test_request_context()
- ctx.push()
- yield _app
- ctx.pop()
- @pytest.yield_fixture(scope='session')
- def client(app):
- """A Flask test client. An instance of :class:`flask.testing.TestClient`
- by default.
- """
- with app.test_client() as client:
- yield client
- @pytest.fixture(scope='session')
- def testapp(app):
- """A Webtest app."""
- return TestApp(app)
- @pytest.yield_fixture(scope='session')
- def db(app):
- """A database for the tests."""
- _db.app = app
- with app.app_context():
- _db.create_all()
- yield _db
- # Explicitly close DB connection
- _db.session.close()
- _db.drop_all()
- @pytest.fixture(scope='session')
- def user(db):
- """A user for the tests."""
- user = UserFactory()
- db.session.commit()
- return user
|