Coverage for src/mesh/tests/models/test_user_models.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.9.0, created at 2026-02-04 09:42 +0000

1from datetime import timedelta 

2 

3from django.test import override_settings 

4 

5from ...models.factories import UserFactory 

6from ...models.user_models import User, UserToken 

7from ..base_test_case import BaseTestCase 

8 

9 

10class UserTestCase(BaseTestCase): 

11 used_models = [User] 

12 

13 def test_token_authentication_allowed(self): 

14 base_user = UserFactory.create() 

15 self.assertTrue(base_user.is_token_authentication_allowed) 

16 

17 staff_user = UserFactory.create(is_staff=True) 

18 self.assertFalse(staff_user.is_token_authentication_allowed) 

19 

20 admin_user = UserFactory.create(is_staff=True) 

21 self.assertFalse(admin_user.is_token_authentication_allowed) 

22 

23 journal_manager_user = UserFactory.create(is_staff=True) 

24 self.assertFalse(journal_manager_user.is_token_authentication_allowed) 

25 

26 

27class UserTokenTestCase(BaseTestCase): 

28 used_models = [UserToken, User] 

29 

30 def setUp(self): 

31 super().setUp() 

32 self.user_base = UserFactory.create() 

33 

34 @override_settings(MESH_USER_TOKEN_EXPIRATION_DAYS=0) 

35 def test_expiration_date(self): 

36 token = UserToken.get_token(self.user_base) 

37 self.assertIsNotNone(token.date_refreshed) 

38 self.assertFalse(token.is_expired) 

39 

40 token.date_refreshed -= timedelta(days=1) 

41 self.assertTrue(token.is_expired) 

42 

43 def test_get_token(self): 

44 self.assertFalse(UserToken.objects.all().exists()) 

45 token = UserToken.get_token(self.user_base) 

46 

47 self.assertEqual(len(UserToken.objects.all()), 1) 

48 self.assertEqual(token.user.pk, self.user_base.pk) 

49 

50 same_token = UserToken.get_token(self.user_base) 

51 self.assertEqual(same_token.pk, token.pk) 

52 self.assertEqual(len(UserToken.objects.all()), 1)