1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
from django.core.management import call_command
from django.core.management.base import CommandError
from django.contrib.auth.models import User, Group
from django.test import TransactionTestCase
from main.models import Repo
from devel.models import UserProfile
class RetireUsertest(TransactionTestCase):
fixtures = ['main/fixtures/arches.json', 'main/fixtures/repos.json']
def setUp(self):
self.username = 'joe'
self.user = User.objects.create(username=self.username, first_name="Joe",
last_name="User", email="user1@example.com")
self.profile = UserProfile.objects.create(user=self.user,
public_email="{}@awesome.com".format(self.user.username))
for name in ['Developers', 'Retired Developers']:
Group.objects.create(name=name)
def tearDown(self):
self.profile.delete()
self.user.delete()
def test_invalid_args(self):
with self.assertRaises(CommandError) as e:
call_command('retire_user')
self.assertIn('missing argument user.', str(e.exception))
def test_user_not_found(self):
with self.assertRaises(CommandError) as e:
call_command('retire_user', 'user1')
self.assertIn("Failed to find User 'user1'", str(e.exception))
def test_userprofile_missing(self):
user = User.objects.create(username='user2', first_name="Jane",
last_name="User2", email="user2@example.com")
with self.assertRaises(CommandError) as e:
call_command('retire_user', user.username)
self.assertIn("Failed to find UserProfile", str(e.exception))
user.delete()
def test_user_inactive(self):
call_command('retire_user', self.username)
user = User.objects.get(username=self.username)
self.assertEqual(user.is_active, False)
def test_user_moved_groups(self):
self.user.groups.add(Group.objects.get(name='Developers'))
self.user.save()
call_command('retire_user', self.username)
user = User.objects.get(username=self.username)
groups = [Group.objects.get(name='Retired Developers')]
self.assertEqual(list(user.groups.all()), groups)
def test_user_repos(self):
self.profile.allowed_repos.add(Repo.objects.get(name='Core'))
self.profile.save()
call_command('retire_user', self.username)
profile = UserProfile.objects.get(user=self.user)
self.assertEqual(len(profile.allowed_repos.all()), 0)
|