aboutsummaryrefslogtreecommitdiff
path: root/tests/cli/test_fietsctl.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cli/test_fietsctl.py')
-rw-r--r--tests/cli/test_fietsctl.py87
1 files changed, 27 insertions, 60 deletions
diff --git a/tests/cli/test_fietsctl.py b/tests/cli/test_fietsctl.py
index e1994b6..6e19f21 100644
--- a/tests/cli/test_fietsctl.py
+++ b/tests/cli/test_fietsctl.py
@@ -10,6 +10,7 @@ from sqlalchemy.orm import Session
from fietsboek import models
from .conftest import fietsctl_results # pylint: disable=relative-beyond-top-level
+from ..testutils import populate # pylint: disable=relative-beyond-top-level
class CliChecker:
@@ -119,99 +120,65 @@ def test_user_add(fietsctl, dbsession):
assert user.is_verified
-def test_user_list(fietsctl, dbengine):
- with Session(dbengine) as session:
- user = models.User(name="Shauna", email="vayne@lge.com")
- user.set_password("vayne")
- user.roll_session_secret()
- session.add(user)
-
- user = models.User(name="Berri", email="tx@ar.rak", is_admin=True, is_verified=True)
- user.set_password("txarrak")
- user.roll_session_secret()
- session.add(user)
-
- session.commit()
+def test_user_list(fietsctl, dbengine, data_manager):
+ populate(dbengine, data_manager)
res = fietsctl(["user", "list"])
assert res.successful()
- assert res.has_line("vayne@lge\\.com .* Shauna")
- assert res.has_line("av.*tx@ar\\.rak .* Berri")
+ assert res.has_line("av.*jon\\.snow@nw\\.org.*Jon")
+ assert res.has_line("v.*davos@seaworth\\.com.*Davos")
-def test_user_del(fietsctl, dbengine):
- with Session(dbengine) as session:
- user = models.User(name="Shaun", email="murphy@tg.doc", is_verified=True)
- user.set_password("murphy")
- user.roll_session_secret()
- session.add(user)
-
- user = models.User(name="Aaron", email="gl@ss.man", is_verified=True)
- user.set_password("glassman")
- user.roll_session_secret()
- session.add(user)
+def test_user_del(fietsctl, dbengine, data_manager):
+ populate(dbengine, data_manager)
- session.commit()
-
- res = fietsctl(["user", "del", "-f", "--email", "murphy@tg.doc"])
+ res = fietsctl(["user", "del", "-f", "--email", "jon.snow@nw.org"])
assert res.successful()
with dbengine.connect() as conn:
- qry = select(models.User).filter_by(email="gl@ss.man")
+ qry = select(models.User).filter_by(email="davos@seaworth.com")
row = conn.execute(qry).scalar_one_or_none()
assert row
- qry = select(models.User).filter_by(email="murphy@tg.doc")
+ qry = select(models.User).filter_by(email="jon.snow@nw.org")
row = conn.execute(qry).scalar_one_or_none()
assert row is None
- res = fietsctl(["user", "del", "-f", "--email", "gl@ss.man"])
+ res = fietsctl(["user", "del", "-f", "--email", "davos@seaworth.com"])
assert res.successful()
with dbengine.connect() as conn:
- qry = select(models.User).filter_by(email="gl@ss.man")
+ qry = select(models.User).filter_by(email="davos@seaworth.com")
row = conn.execute(qry).scalar_one_or_none()
assert row is None
-def test_user_passwd(fietsctl, dbengine):
- with Session(dbengine) as session:
- user = models.User(name="john", email="dori@n", is_verified=True)
- user.set_password("dorian")
- user.roll_session_secret()
- session.add(user)
- session.commit()
- user_id = user.id
-
- res = fietsctl(["user", "passwd", "--email", "dori@n", "--password", "DORIAN"])
+def test_user_passwd(fietsctl, dbengine, data_manager):
+ ids = populate(dbengine, data_manager)
+
+ res = fietsctl(["user", "passwd", "--email", "jon.snow@nw.org", "--password", "Ghost"])
assert res.successful()
with Session(dbengine) as session:
- user = session.get(models.User, user_id)
- user.check_password("DORIAN")
+ user = session.get(models.User, ids.jon)
+ user.check_password("Ghost")
with pytest.raises(models.user.PasswordMismatch):
- user.check_password("dorian")
+ user.check_password("ygritte")
-def test_user_modify(fietsctl, dbengine):
- with Session(dbengine) as session:
- user = models.User(name="stephen", email="str@n.ge")
- user.set_password("strange")
- user.roll_session_secret()
- session.add(user)
- session.commit()
- user_id = user.id
+def test_user_modify(fietsctl, dbengine, data_manager):
+ ids = populate(dbengine, data_manager)
res = fietsctl([
"user", "modify",
- "--email", "str@n.ge",
+ "--email", "davos@seaworth.com",
"--admin",
- "--verified",
- "--set-email", "not-str@n.ge",
+ "--no-verified",
+ "--set-email", "ser.davos@seaworth.com",
])
assert res.successful()
with Session(dbengine) as session:
- user: models.User = session.get(models.User, user_id)
- assert user.is_verified
+ user: models.User = session.get(models.User, ids.davos)
+ assert not user.is_verified
assert user.is_admin
- assert user.email == "not-str@n.ge"
+ assert user.email == "ser.davos@seaworth.com"