import pytest from flask import g from flask_login import login_user, logout_user, current_user import app as myapp from app import db, create_app from app.auth.models import User, Role, Permission from app.scodoc import sco_bulletins_standard from app.scodoc import notesdb as ndb def truncate_database(): "Erase content of all tables from current dept database" # use a stored SQL function, see createtables.sql ndb.SimpleQuery("SELECT truncate_tables('scodoc');", {}) @pytest.fixture() def test_client(): # Setup myapp.Config.TESTING = True myapp.Config.SQLALCHEMY_DATABASE_URI = "sqlite://" myapp.Config.SERVER_NAME = "test.gr" apptest = create_app() # Run tests: with apptest.test_client() as client: with apptest.app_context(): with apptest.test_request_context(): db.create_all() Role.insert_roles() u = User(user_name="admin") admin_role = Role.query.filter_by(name="SuperAdmin").first() u.add_role(admin_role, "TEST00") # u.set_password("admin") login_user(u) # db.session.add(u) ndb.set_sco_dept("TEST00") # set db connection truncate_database() # erase tables yield client # ndb.close_dept_connection() # Teardown: db.session.remove() db.drop_all()