diff --git a/accounts/tests.py b/accounts/tests.py index 733efc6..9c0da4d 100644 --- a/accounts/tests.py +++ b/accounts/tests.py @@ -18,6 +18,13 @@ class TestViews(TestCase): def test_profile(self): response = self.client.get(reverse('profile')) self.assertEqual(response.status_code, 200) + response = self.client.post(reverse('profile'), { + 'first_name': 'newfirstname', + }, follow=True) + self.assertRedirects(response, reverse('profile')) + self.assertContains(response, 'successfully') + user = User.objects.get(username='admin') + self.assertEqual(user.first_name, 'newfirstname') # Users @@ -48,6 +55,11 @@ class TestViews(TestCase): user = User.objects.get(username='user1') response = self.client.get(reverse('edit-user', args=[user.id])) self.assertEqual(response.status_code, 200) + self.assertContains(response, 'Username') + with self.settings(EXTERNAL_AUTH=True): + response = self.client.get(reverse('edit-user', args=[user.id])) + self.assertEqual(response.status_code, 200) + self.assertNotContains(response, 'Username') response = self.client.post(reverse('edit-user', args=[user.id]), { 'username': user.username, 'first_name': 'newfirstname', @@ -58,18 +70,31 @@ class TestViews(TestCase): def test_user_disable_activate(self): user = User.objects.get(username='user1') - response = self.client.get(reverse('disable-user', args=[user.id])) + response = self.client.get(reverse('activate-user', args=[user.id]), follow=True) self.assertRedirects(response, reverse('show-user', args=[user.id])) + self.assertContains(response, 'already activated') + response = self.client.get(reverse('disable-user', args=[user.id]), follow=True) + self.assertRedirects(response, reverse('show-user', args=[user.id])) + self.assertContains(response, 'disabled successfully') user = User.objects.get(pk=user.pk) self.assertFalse(user.is_active) - response = self.client.get(reverse('activate-user', args=[user.id])) + response = self.client.get(reverse('disable-user', args=[user.id]), follow=True) self.assertRedirects(response, reverse('show-user', args=[user.id])) + self.assertContains(response, 'already disabled') + response = self.client.get(reverse('activate-user', args=[user.id]), follow=True) + self.assertRedirects(response, reverse('show-user', args=[user.id])) + self.assertContains(response, 'activated successfully') user = User.objects.get(pk=user.pk) self.assertTrue(user.is_active) def test_user_edit_password(self): user = User.objects.get(username='user1') self.assertTrue(user.check_password("user1")) + response = self.client.get(reverse('edit-user-password', args=[user.id])) + self.assertEqual(response.status_code, 200) + with self.settings(EXTERNAL_AUTH=True): + response = self.client.get(reverse('edit-user-password', args=[user.id])) + self.assertEqual(response.status_code, 404) response = self.client.post(reverse('edit-user-password', args=[user.id]), { 'password1': 'newpassword', 'password2': 'newpassword', @@ -78,15 +103,12 @@ class TestViews(TestCase): user = User.objects.get(username='user1') self.assertTrue(user.check_password('newpassword')) - def test_user_delete_get(self): + def test_user_delete(self): user_count = User.objects.count() user = User.objects.get(username='user1') response = self.client.get(reverse('delete-user', args=[user.id])) self.assertEqual(response.status_code, 405) # method not allowed self.assertEqual(User.objects.count(), user_count) - - def test_user_delete_post(self): - user_count = User.objects.count() user = User.objects.get(username='user1') response = self.client.post(reverse('delete-user', args=[user.id])) self.assertRedirects(response, reverse('list-user')) @@ -95,6 +117,11 @@ class TestViews(TestCase): def test_user_add_group(self): user = User.objects.get(username='user1') group = Group.objects.create(name='newgroup') + with self.settings(GROUP_MANAGMENT=False): + response = self.client.get(reverse('add-group-to-user', args=[user.id]) + '?term=new') + self.assertEqual(response.status_code, 404) + response = self.client.get(reverse('add-group-to-user', args=[user.id])) + self.assertEqual(response.status_code, 404) response = self.client.get(reverse('add-group-to-user', args=[user.id]) + '?term=new') self.assertEqual(response.status_code, 200) available = json.loads(response.content.decode('utf-8')) @@ -109,6 +136,11 @@ class TestViews(TestCase): def test_user_remove_group(self): user = User.objects.get(username='user1') group = user.groups.first() + with self.settings(GROUP_MANAGMENT=False): + response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id])) + self.assertEqual(response.status_code, 404) + user = User.objects.get(pk=user.pk) + self.assertTrue(group in user.groups.all()) response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id])) self.assertEqual(response.status_code, 200) user = User.objects.get(pk=user.pk) @@ -117,6 +149,8 @@ class TestViews(TestCase): def test_user_add_team(self): user = User.objects.get(username='user1') team = Team.objects.create(name='newteam') + response = self.client.get(reverse('add-team-to-user', args=[user.id])) + self.assertEqual(response.status_code, 404) response = self.client.get(reverse('add-team-to-user', args=[user.id]) + '?term=new') self.assertEqual(response.status_code, 200) available = json.loads(response.content.decode('utf-8')) @@ -162,6 +196,11 @@ class TestViews(TestCase): group = Group.objects.get(name='group1') response = self.client.get(reverse('edit-group', args=[group.id])) self.assertEqual(response.status_code, 200) + with self.settings(GROUP_MANAGMENT=False): + response = self.client.post(reverse('edit-group', args=[group.id]), { + 'name': 'newname', + }) + self.assertEqual(response.status_code, 404) response = self.client.post(reverse('edit-group', args=[group.id]), { 'name': 'newname', }) @@ -169,16 +208,16 @@ class TestViews(TestCase): group = Group.objects.get(pk=group.pk) self.assertEqual(group.name, 'newname') - def test_group_delete_get(self): + def test_group_delete(self): group_count = Group.objects.count() group = Group.objects.get(name='group1') response = self.client.get(reverse('delete-group', args=[group.id])) self.assertEqual(response.status_code, 405) # method not allowed self.assertEqual(Group.objects.count(), group_count) - - def test_group_delete_post(self): - group_count = Group.objects.count() - group = Group.objects.get(name='group1') + with self.settings(GROUP_MANAGMENT=False): + response = self.client.post(reverse('delete-group', args=[group.id])) + self.assertEqual(response.status_code, 404) + self.assertEqual(Group.objects.count(), group_count) response = self.client.post(reverse('delete-group', args=[group.id])) self.assertRedirects(response, reverse('list-group')) self.assertEqual(Group.objects.count(), group_count - 1) @@ -186,6 +225,13 @@ class TestViews(TestCase): def test_group_add_user(self): group = Group.objects.get(name='group1') user = User.objects.create(username='newuser') + with self.settings(GROUP_MANAGMENT=False): + response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?term=new') + self.assertEqual(response.status_code, 404) + user = User.objects.get(pk=user.pk) + self.assertFalse(group in user.groups.all()) + response = self.client.get(reverse('add-user-to-group', args=[group.id])) + self.assertEqual(response.status_code, 404) response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?term=new') self.assertEqual(response.status_code, 200) available = json.loads(response.content.decode('utf-8')) @@ -200,6 +246,11 @@ class TestViews(TestCase): def test_group_remove_user(self): user = User.objects.get(username='user1') group = user.groups.first() + with self.settings(GROUP_MANAGMENT=False): + response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id])) + self.assertEqual(response.status_code, 404) + user = User.objects.get(pk=user.pk) + self.assertTrue(group in user.groups.all()) response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id])) self.assertEqual(response.status_code, 200) user = User.objects.get(pk=user.pk) @@ -222,6 +273,8 @@ class TestViews(TestCase): def test_team_add(self): team_count = Team.objects.count() + response = self.client.get(reverse('add-team')) + self.assertEqual(response.status_code, 200) response = self.client.post(reverse('add-team'), { 'name': 'newteam', }) @@ -240,16 +293,12 @@ class TestViews(TestCase): team = Team.objects.get(pk=team.pk) self.assertEqual(team.name, 'newname') - def test_team_delete_get(self): + def test_team_delete(self): team_count = Team.objects.count() team = Team.objects.get(name='team1') response = self.client.get(reverse('delete-team', args=[team.id])) self.assertEqual(response.status_code, 405) # method not allowed self.assertEqual(Team.objects.count(), team_count) - - def test_team_delete_post(self): - team_count = Team.objects.count() - team = Team.objects.get(name='team1') response = self.client.post(reverse('delete-team', args=[team.id])) self.assertRedirects(response, reverse('list-team')) self.assertEqual(Team.objects.count(), team_count - 1) @@ -257,6 +306,8 @@ class TestViews(TestCase): def test_team_add_user(self): team = Team.objects.get(name='team2') user = User.objects.create(username='newuser') + response = self.client.get(reverse('add-user-to-team', args=[team.id])) + self.assertEqual(response.status_code, 404) response = self.client.get(reverse('add-user-to-team', args=[team.id]) + '?term=new') self.assertEqual(response.status_code, 200) available = json.loads(response.content.decode('utf-8')) @@ -279,6 +330,8 @@ class TestViews(TestCase): def test_team_add_group(self): team = Team.objects.get(name='team2') group = Group.objects.create(name='newgroup') + response = self.client.get(reverse('add-group-to-team', args=[team.id])) + self.assertEqual(response.status_code, 404) response = self.client.get(reverse('add-group-to-team', args=[team.id]) + '?term=new') self.assertEqual(response.status_code, 200) available = json.loads(response.content.decode('utf-8')) @@ -297,3 +350,16 @@ class TestViews(TestCase): self.assertEqual(response.status_code, 200) team = Team.objects.get(pk=team.pk) self.assertFalse(group in team.groups.all()) + + +class TestModels(TestCase): + + def test_user(self): + user = User.objects.create(username='user') + self.assertEqual(user.username_and_fullname, 'user') + user.first_name = 'Firstname' + self.assertEqual(user.username_and_fullname, 'user (Firstname)') + user.last_name = 'Lastname' + self.assertEqual(user.username_and_fullname, 'user (Firstname Lastname)') + user.first_name = '' + self.assertEqual(user.username_and_fullname, 'user (Lastname)')