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

1from website.manager import UserManager 

2 

3 

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 

10 

11 def set_password(self, raw): 

12 self.password = raw 

13 

14 def save(self): 

15 self.saved = True 

16 

17 

18def test_create_user_and_superuser_paths(): 

19 mgr = UserManager() 

20 mgr.model = DummyUser 

21 

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 

28 

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" 

34 

35 

36def test_create_user_missing_email_raises(): 

37 mgr = UserManager() 

38 mgr.model = DummyUser 

39 

40 try: 

41 mgr.create_user("", "pw") 

42 raised = False 

43 except ValueError: 

44 raised = True 

45 

46 assert raised 

47 

48 

49def test_create_superuser_checks_flags(): 

50 mgr = UserManager() 

51 mgr.model = DummyUser 

52 

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 

59 

60 assert not ok