Coverage for website/tests/test_manager.py: 95%
41 statements
« prev ^ index » next coverage.py v7.5.0, created at 2025-09-13 15:29 -0300
« prev ^ index » next coverage.py v7.5.0, created at 2025-09-13 15:29 -0300
1from website.manager import UserManager
4class DummyUser:
5 def __init__(self, email=None, **extra):
6 self.email = email
7 self.extra = extra
8 self.password = None
9 self.saved = False
11 def set_password(self, raw):
12 self.password = raw
14 def save(self):
15 self.saved = True
18def test_create_user_and_superuser_paths():
19 mgr = UserManager()
20 mgr.model = DummyUser
22 # create_user happy path
23 u = mgr.create_user("u@example.com", "secret")
24 assert isinstance(u, DummyUser)
25 assert u.email == "u@example.com"
26 assert u.password == "secret"
27 assert u.saved
29 # create_superuser happy path (should call create_user)
30 su = mgr.create_superuser("admin@example.com", "root")
31 assert isinstance(su, DummyUser)
32 assert su.email == "admin@example.com"
33 assert su.password == "root"
36def test_create_user_missing_email_raises():
37 mgr = UserManager()
38 mgr.model = DummyUser
40 try:
41 mgr.create_user("", "pw")
42 raised = False
43 except ValueError:
44 raised = True
46 assert raised
49def test_create_superuser_checks_flags():
50 mgr = UserManager()
51 mgr.model = DummyUser
53 # passing wrong flags should raise
54 try:
55 mgr.create_superuser("x@x.com", "pw", is_staff=False)
56 ok = True
57 except ValueError:
58 ok = False
60 assert not ok