def test_remove_community_member_view(self): """Test GET request to remove a community member""" url = reverse('remove_member', kwargs={ 'slug': 'foo', 'username': '******' }) response = self.client.get(url) self.assertEqual(response.status_code, 403) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 404) admin_url = reverse('remove_member', kwargs={ 'slug': 'foo', 'username': '******' }) response = self.client.get(admin_url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "warning") self.assertTrue( "foo is the Foo community admin. It is not possible to remove " "the admin from community members." in message.message) bar_user = User.objects.create_user(username="******", password="******") bar_systers_user = SystersUser.objects.get(user=bar_user) response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "warning") self.assertTrue( "bar is not a member of Foo community, hence the user can't " "be removed from the community members." in message.message) self.community.add_member(bar_systers_user) self.community.save() response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "success") self.assertTrue( "bar is no longer member of Foo community." in message.message) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 403) self.community.add_member(bar_systers_user) self.community.save() group = Group.objects.get(name=USER_CONTENT_MANAGER.format("Foo")) bar_user.groups.add(group) response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "success") self.assertTrue( "You have successfully left Foo community." in message.message)
def test_remove_community_member_view(self): """Test GET request to remove a community member""" url = reverse('remove_member', kwargs={'slug': 'foo', 'username': '******'}) response = self.client.get(url) self.assertEqual(response.status_code, 403) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 404) admin_url = reverse('remove_member', kwargs={'slug': 'foo', 'username': '******'}) response = self.client.get(admin_url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "warning") self.assertTrue( "foo is the Foo community admin. It is not possible to remove " "the admin from community members." in message.message) bar_user = User.objects.create_user(username="******", password="******") bar_systers_user = SystersUser.objects.get(user=bar_user) response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "warning") self.assertTrue( "bar is not a member of Foo community, hence the user can't " "be removed from the community members." in message.message) self.community.add_member(bar_systers_user) self.community.save() response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "success") self.assertTrue("bar is no longer member of Foo community." in message.message) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 403) self.community.add_member(bar_systers_user) self.community.save() group = Group.objects.get(name=USER_CONTENT_MANAGER.format("Foo")) bar_user.groups.add(group) response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) for message in response.context['messages']: self.assertEqual(message.tags, "success") self.assertTrue("You have successfully left Foo community." in message.message)
def test_community_users_view(self): """Test GET request to list all community members according to various levels of permissions.""" url = reverse('community_users', kwargs={'slug': 'bar'}) response = self.client.get(url) self.assertEqual(response.status_code, 403) url = reverse('community_users', kwargs={'slug': 'foo'}) response = self.client.get(url) self.assertEqual(response.status_code, 403) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "community/users.html") self.assertContains(response, '<td><a href="/users/foo/">foo</a></td>') self.assertContains(response, 'Permissions') self.assertNotContains(response, 'Remove') new_user = User.objects.create_user(username='******', password='******') new_systers_user = SystersUser.objects.get(user=new_user) self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 403) self.community.add_member(new_systers_user) self.community.save() group = Group.objects.get(name=USER_CONTENT_MANAGER.format("Foo")) new_user.groups.add(group) response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "community/users.html") self.assertContains(response, '<td><a href="/users/baz/">baz</a></td>') self.assertContains(response, '<td><a href="/users/foo/">foo</a></td>') self.assertContains(response, 'Permissions') self.assertContains(response, 'Leave') self.client.login(username='******', password='******') response = self.client.get(url) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Remove') self.assertContains(response, 'Transfer ownership')
def test_user_content_manager_constant(self): """Test USER_CONTENT_MANAGER constant value""" user_content_manager = USER_CONTENT_MANAGER.format(self.foo) self.assertEqual(user_content_manager, "Foo: User and Content Manager")