# creating and testing permissions and test groups in django tests.
from django.contrib.auth.models import User, Permission, Group
from django.test import TestCase
from django.test import Client


class ExampleGroupPermissionsTests(TestCase):

    def setUp(self):
        #create permissions group
        group_name = "My Test Group"
        self.group = Group(name=group_name)
        self.group.save()
        self.c = Client()
        self.user = User.objects.create_user(username="test", email="test@test.com", password="test")

    def tearDown(self):
        self.user.delete()
        self.group.delete()

    def test_user_cannot_access(self):
        """user NOT in group should not have access
        """
        self.c.login(username='test', password='test')
        response = self.c.get("/my_view")
        self.assertEqual(response.status_code, 302, u'user in group should have access')
        
        
    def test_user_can_access(self):
        """user in group should have access
        """
        self.user.groups.add(self.group)
        self.user.save()
        self.c.login(username='test', password='test')
        response = self.c.get("/my_view")
        self.assertEqual(response.status_code, 200, u'user in group should have access')