changeset 5901:ef1187159860

tests: add create_test_user fixture Uses https://pytest.org/latest/yieldfixture.html#yieldfixture to provide auto-deleting users to tests.
author Konstantin Veretennicov <kveretennicov@gmail.com>
date Sun, 01 May 2016 23:29:09 +0200
parents 83c34fbb2139
children 7d23f2491ce8
files kallithea/tests/conftest.py
diffstat 1 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/tests/conftest.py	Thu May 05 17:57:46 2016 +0200
+++ b/kallithea/tests/conftest.py	Sun May 01 23:29:09 2016 +0200
@@ -6,6 +6,9 @@
 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 @@
     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()