annotate accounts/tests/test_utils.py @ 1214:9a011e2de2f6 modernize tip

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