Browse Source

#414: Test cases implementation

Rafał Pitoń 10 years ago
parent
commit
1e5776ff97
2 changed files with 124 additions and 0 deletions
  1. 76 0
      misago/users/tests/test_testutils.py
  2. 48 0
      misago/users/testutils.py

+ 76 - 0
misago/users/tests/test_testutils.py

@@ -0,0 +1,76 @@
+from django.core.urlresolvers import reverse
+
+from misago.users.testutils import (UserTestCase, AuthenticatedUserTestCase,
+                                    SuperUserTestCase)
+
+
+class UserTestCaseTests(UserTestCase):
+    def test_get_anonymous_user(self):
+        """get_anonymous_user returns anon user instance"""
+        user = self.get_anonymous_user()
+        self.assertFalse(user.is_authenticated())
+        self.assertTrue(user.is_anonymous())
+
+    def test_get_authenticated_user(self):
+        """get_authenticated_user returns auth user instance"""
+        user = self.get_authenticated_user()
+        self.assertTrue(user.is_authenticated())
+        self.assertFalse(user.is_anonymous())
+        self.assertFalse(user.is_staff)
+        self.assertFalse(user.is_superuser)
+
+    def test_get_superuser(self):
+        """get_superuser returns auth user instance"""
+        user = self.get_superuser()
+        self.assertTrue(user.is_authenticated())
+        self.assertFalse(user.is_anonymous())
+        self.assertTrue(user.is_staff)
+        self.assertTrue(user.is_superuser)
+
+    def test_login_user(self):
+        """login_user logs user"""
+        user = self.get_authenticated_user()
+        self.login_user(user)
+
+        response = self.client.get(reverse('misago:index'))
+        self.assertIn(user.username, response.content)
+
+    def test_login_superuser(self):
+        """login_user logs superuser"""
+        user = self.get_superuser()
+        self.login_user(user)
+
+        response = self.client.get(reverse('misago:index'))
+        self.assertIn(user.username, response.content)
+
+    def test_logout_user(self):
+        """logout_user logs user out"""
+        user = self.get_authenticated_user()
+        self.login_user(user)
+        self.logout_user()
+
+        response = self.client.get(reverse('misago:index'))
+        self.assertNotIn(user.username, response.content)
+
+    def test_logout_superuser(self):
+        """logout_user logs superuser out"""
+        user = self.get_superuser()
+        self.login_user(user)
+        self.logout_user()
+
+        response = self.client.get(reverse('misago:index'))
+        self.assertNotIn(user.username, response.content)
+
+
+class AuthenticatedUserTestCaseTests(AuthenticatedUserTestCase):
+    def test_setup(self):
+        """setup executed correctly"""
+        response = self.client.get(reverse('misago:index'))
+        self.assertIn(self.user.username, response.content)
+
+
+class SuperUserTestCaseTests(SuperUserTestCase):
+    def test_setup(self):
+        """setup executed correctly"""
+        response = self.client.get(reverse('misago:index'))
+        self.assertIn(self.user.username, response.content)

+ 48 - 0
misago/users/testutils.py

@@ -0,0 +1,48 @@
+from django.contrib.auth import get_user_model
+from django.core.urlresolvers import reverse
+from django.test import TestCase
+
+from misago.users.models import AnonymousUser
+
+
+class UserTestCase(TestCase):
+    USER_PASSWORD = "Pass.123"
+
+    def setUp(self):
+        self.user = self.get_anonymous_user()
+
+    def get_anonymous_user(self):
+        return AnonymousUser()
+
+    def get_authenticated_user(self):
+        User = get_user_model()
+        return User.objects.create_user(
+            "TestUser", "test@user.com", self.USER_PASSWORD)
+
+    def get_superuser(self):
+        User = get_user_model()
+        return User.objects.create_superuser(
+            "TestSuperUser", "test@superuser.com", self.USER_PASSWORD)
+
+    def login_user(self, user):
+        self.client.post(reverse('misago:login'), data={
+            'username': user.email,
+            'password': self.USER_PASSWORD,
+        })
+        self.client.get(reverse('misago:index'))
+
+    def logout_user(self):
+        self.client.post(reverse('misago:logout'))
+        self.client.get(reverse('misago:index'))
+
+
+class AuthenticatedUserTestCase(UserTestCase):
+    def setUp(self):
+        self.user = self.get_authenticated_user()
+        self.login_user(self.user)
+
+
+class SuperUserTestCase(UserTestCase):
+    def setUp(self):
+        self.user = self.get_superuser()
+        self.login_user(self.user)