bgneal@1213: """ bgneal@1213: Tests for accounts.utils module. bgneal@1213: bgneal@1213: """ bgneal@1213: from datetime import datetime, timedelta bgneal@1213: bgneal@1213: from django.contrib.auth.models import User bgneal@1213: from django.test import TestCase bgneal@1213: from mock import call, patch, Mock bgneal@1213: bgneal@1213: from accounts.models import PendingUser bgneal@1213: from accounts.utils import create_new_user bgneal@1213: bgneal@1213: bgneal@1213: class AccountUtilsTestCase(TestCase): bgneal@1213: fixtures = ['accounts.json'] bgneal@1213: bgneal@1213: def setUp(self): bgneal@1213: self.pending_user = PendingUser(username='pjmoto', bgneal@1213: email='pjmoto@example.com', password='password') bgneal@1213: self.pending_user.save() bgneal@1213: bgneal@1213: def assert_new_user(self): bgneal@1213: pjmoto = User.objects.get(username='pjmoto') bgneal@1213: self.assertEqual(pjmoto.username, 'pjmoto') bgneal@1213: self.assertEqual(pjmoto.first_name, '') bgneal@1213: self.assertEqual(pjmoto.last_name, '') bgneal@1213: self.assertEqual(pjmoto.email, 'pjmoto@example.com') bgneal@1213: self.assertFalse(pjmoto.is_staff) bgneal@1213: self.assertTrue(pjmoto.is_active) bgneal@1213: self.assertFalse(pjmoto.is_superuser) bgneal@1213: bgneal@1213: now = datetime.now() bgneal@1213: delta = timedelta(days=0, seconds=5) bgneal@1213: self.assertTrue(now - pjmoto.last_login < delta) bgneal@1213: self.assertTrue(now - pjmoto.date_joined < delta) bgneal@1213: bgneal@1213: self.assertEqual(PendingUser.objects.count(), 0) bgneal@1213: bgneal@1213: @patch('accounts.utils.logger') bgneal@1213: def test_create_new_user_admin_activation(self, logger_mock): bgneal@1213: create_new_user(self.pending_user, admin_activation=True) bgneal@1213: bgneal@1213: self.assert_new_user() bgneal@1213: bgneal@1213: self.assertEqual(logger_mock.mock_calls, [ bgneal@1213: call.info('Accounts registration confirmed by ADMIN for pjmoto') bgneal@1213: ]) bgneal@1213: bgneal@1213: @patch('accounts.utils.logger') bgneal@1213: def test_create_new_user_user_activation(self, logger_mock): bgneal@1213: create_new_user(self.pending_user, ip='127.0.0.1', bgneal@1213: admin_activation=False) bgneal@1213: bgneal@1213: self.assert_new_user() bgneal@1213: bgneal@1213: self.assertEqual(logger_mock.mock_calls, [ bgneal@1213: call.info('Accounts registration confirmed by USER for pjmoto from ' bgneal@1213: '127.0.0.1') bgneal@1213: ])