comparison accounts/tests/test_utils.py @ 1213:5e898f91fe36 modernize

Add more unit tests for accounts app.
author Brian Neal <bgneal@gmail.com>
date Sun, 09 Feb 2025 14:31:35 -0600
parents
children
comparison
equal deleted inserted replaced
1212:d18db8bfe17a 1213:5e898f91fe36
1 """
2 Tests for accounts.utils module.
3
4 """
5 from datetime import datetime, timedelta
6
7 from django.contrib.auth.models import User
8 from django.test import TestCase
9 from mock import call, patch, Mock
10
11 from accounts.models import PendingUser
12 from accounts.utils import create_new_user
13
14
15 class AccountUtilsTestCase(TestCase):
16 fixtures = ['accounts.json']
17
18 def setUp(self):
19 self.pending_user = PendingUser(username='pjmoto',
20 email='pjmoto@example.com', password='password')
21 self.pending_user.save()
22
23 def assert_new_user(self):
24 pjmoto = User.objects.get(username='pjmoto')
25 self.assertEqual(pjmoto.username, 'pjmoto')
26 self.assertEqual(pjmoto.first_name, '')
27 self.assertEqual(pjmoto.last_name, '')
28 self.assertEqual(pjmoto.email, 'pjmoto@example.com')
29 self.assertFalse(pjmoto.is_staff)
30 self.assertTrue(pjmoto.is_active)
31 self.assertFalse(pjmoto.is_superuser)
32
33 now = datetime.now()
34 delta = timedelta(days=0, seconds=5)
35 self.assertTrue(now - pjmoto.last_login < delta)
36 self.assertTrue(now - pjmoto.date_joined < delta)
37
38 self.assertEqual(PendingUser.objects.count(), 0)
39
40 @patch('accounts.utils.logger')
41 def test_create_new_user_admin_activation(self, logger_mock):
42 create_new_user(self.pending_user, admin_activation=True)
43
44 self.assert_new_user()
45
46 self.assertEqual(logger_mock.mock_calls, [
47 call.info('Accounts registration confirmed by ADMIN for pjmoto')
48 ])
49
50 @patch('accounts.utils.logger')
51 def test_create_new_user_user_activation(self, logger_mock):
52 create_new_user(self.pending_user, ip='127.0.0.1',
53 admin_activation=False)
54
55 self.assert_new_user()
56
57 self.assertEqual(logger_mock.mock_calls, [
58 call.info('Accounts registration confirmed by USER for pjmoto from '
59 '127.0.0.1')
60 ])