summaryrefslogtreecommitdiff
path: root/server/szurubooru/tests/conftest.py
diff options
context:
space:
mode:
authorReAnzu <anzu@reanzu.com>2018-02-25 04:44:02 -0600
committerrr- <rr-@sakuya.pl>2018-03-25 22:23:29 +0200
commit2a69f0193f9e5aa451e0dbcb8c89070f3e49ffa5 (patch)
treebda640614ae711e8fef0e0463f118f85ef83ac0e /server/szurubooru/tests/conftest.py
parente35e70992736340bff3995ca6f425baf2f431e2f (diff)
server/auth: add token authentication
* Users are only authenticated against their password on login, and to retrieve a token * Passwords are wiped from the GUI frontend and cookies after login and token retrieval * Tokens are revoked at the end of the session/logout * If the user chooses the "remember me" option, the token is stored in the cookie * Tokens correctly delete themselves on logout * Tokens can expire at user-specified date * Tokens have their last usage time * Tokens can have user defined descriptions * Users can manage login tokens in their account settings
Diffstat (limited to 'server/szurubooru/tests/conftest.py')
-rw-r--r--server/szurubooru/tests/conftest.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/server/szurubooru/tests/conftest.py b/server/szurubooru/tests/conftest.py
index db7806e..f6eeee1 100644
--- a/server/szurubooru/tests/conftest.py
+++ b/server/szurubooru/tests/conftest.py
@@ -93,11 +93,11 @@ def session(query_logger): # pylint: disable=unused-argument
@pytest.fixture
def context_factory(session):
- def factory(params=None, files=None, user=None):
+ def factory(params=None, files=None, user=None, headers=None):
ctx = rest.Context(
method=None,
url=None,
- headers={},
+ headers=headers or {},
params=params or {},
files=files or {})
ctx.session = session
@@ -134,6 +134,27 @@ def user_factory():
@pytest.fixture
+def user_token_factory(user_factory):
+ def factory(
+ user=None,
+ token=None,
+ expiration_time=None,
+ enabled=None,
+ creation_time=None):
+ if user is None:
+ user = user_factory()
+ db.session.add(user)
+ user_token = model.UserToken()
+ user_token.user = user
+ user_token.token = token or 'dummy'
+ user_token.expiration_time = expiration_time
+ user_token.enabled = enabled if enabled is not None else True
+ user_token.creation_time = creation_time or datetime(1997, 1, 1)
+ return user_token
+ return factory
+
+
+@pytest.fixture
def tag_category_factory():
def factory(name=None, color='dummy', default=False):
category = model.TagCategory()