# HG changeset patch # User Konstantin Veretennicov # Date 2016-05-01 23:29:09 # Node ID ef1187159860ffd341efbd1c08f483e405e5d53a # Parent 83c34fbb2139375d94b1c84d8bc23bc3b8634efc tests: add create_test_user fixture Uses https://pytest.org/latest/yieldfixture.html#yieldfixture to provide auto-deleting users to tests. diff --git a/kallithea/tests/conftest.py b/kallithea/tests/conftest.py --- a/kallithea/tests/conftest.py +++ b/kallithea/tests/conftest.py @@ -6,6 +6,9 @@ import pkg_resources from paste.deploy import loadapp import pylons.test from pylons.i18n.translation import _get_translator +import pytest +from kallithea.model.user import UserModel +from kallithea.model.meta import Session def pytest_configure(): @@ -32,3 +35,17 @@ def pytest_configure(): pylons.translator._push_object(translator) return pylons.test.pylonsapp + + +@pytest.yield_fixture +def create_test_user(): + """Provide users that automatically disappear after test is over.""" + test_users = [] + def _create_test_user(user_form): + user = UserModel().create(user_form) + test_users.append(user) + return user + yield _create_test_user + for user in test_users: + UserModel().delete(user) + Session().commit()