From b314b138a55d570970f20f3c5a8087f5f24dcdbe Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Sat, 16 Oct 2021 19:58:15 -0700 Subject: [PATCH] Add tests for webapp user (#1621) * Add unit test for webapp user * Add assertion for test webapp user with wrong username --- tests/admin/test_user.py | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/admin/test_user.py diff --git a/tests/admin/test_user.py b/tests/admin/test_user.py new file mode 100644 index 00000000..bb2af5b6 --- /dev/null +++ b/tests/admin/test_user.py @@ -0,0 +1,51 @@ +# MIT License +# +# Copyright (c) 2020 Jonathan Zernik +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import pytest + +from squeaknode.admin.webapp.squeak_admin_web_user import User + + +@pytest.fixture +def username(): + yield "fake_username" + + +@pytest.fixture +def password(): + yield "fake_password" + + +@pytest.fixture +def user(username, password): + yield User(username, password) + + +def test_user(user, username, password): + + assert user.is_authenticated() + assert user.is_active() + assert not user.is_anonymous() + assert user.get_id() == username + assert user.check_password(password) + assert not user.check_password("wrong_password") + assert user.get_user_by_username(username) is user + assert user.get_user_by_username("wrong_username") is None