summaryrefslogtreecommitdiff
path: root/server/szurubooru/tests/conftest.py
diff options
context:
space:
mode:
authorrr- <rr-@sakuya.pl>2016-04-19 15:45:12 +0200
committerrr- <rr-@sakuya.pl>2016-04-19 15:51:26 +0200
commitfe56e376f68c50fd4e1b92b178e2ee2813128dc2 (patch)
tree1eb5f74d3c34f0261ac907c743f7da5d42cb1998 /server/szurubooru/tests/conftest.py
parent884747bbbd0addb4d913037d6ce4d4f071cf835d (diff)
server/tags: export also tag categories
Diffstat (limited to 'server/szurubooru/tests/conftest.py')
-rw-r--r--server/szurubooru/tests/conftest.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/server/szurubooru/tests/conftest.py b/server/szurubooru/tests/conftest.py
index 2981e10..6b70fa7 100644
--- a/server/szurubooru/tests/conftest.py
+++ b/server/szurubooru/tests/conftest.py
@@ -7,6 +7,32 @@ import sqlalchemy
from szurubooru import api, config, db
from szurubooru.util import misc
+class QueryCounter(object):
+ def __init__(self):
+ self._statements = []
+
+ def __enter__(self):
+ self._statements = []
+
+ def __exit__(self, *args, **kwargs):
+ self._statements = []
+
+ def create_before_cursor_execute(self):
+ def before_cursor_execute(
+ _conn, _cursor, statement, _parameters, _context, _executemany):
+ self._statements.append(statement)
+ return before_cursor_execute
+
+ @property
+ def statements(self):
+ return self._statements
+
+_query_counter = QueryCounter()
+
+@pytest.fixture
+def query_counter():
+ return _query_counter
+
def get_unique_name():
return str(uuid.uuid4())
@@ -21,11 +47,15 @@ def fake_datetime():
return injector
@pytest.yield_fixture
-def session(autoload=True):
+def session(query_counter, autoload=True):
import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
engine = sqlalchemy.create_engine('sqlite:///:memory:')
+ sqlalchemy.event.listen(
+ engine,
+ 'before_cursor_execute',
+ query_counter.create_before_cursor_execute())
session_maker = sqlalchemy.orm.sessionmaker(bind=engine)
session = sqlalchemy.orm.scoped_session(session_maker)
db.Base.query = session.query_property()