diff --git a/base/accounts.py b/base/accounts.py index 6e209c66bc..896e8b030b 100644 --- a/base/accounts.py +++ b/base/accounts.py @@ -35,6 +35,10 @@ class UserManager(object): return self.get(email=email) + def create_superuser(self, email, password): + u = self.create_user(email, password, is_staff=True, is_active=True) + return u + def get(self, email=None, id=None): if not email and not id: raise User.DoesNotExist, 'User matching query does not exits.' diff --git a/base/tests.py b/base/tests.py index 33e4c76b2f..4703ad6b5a 100644 --- a/base/tests.py +++ b/base/tests.py @@ -9,36 +9,28 @@ from django.utils import unittest from django.test.client import Client, RequestFactory from django.test import TestCase -from auth.models import AnonymousUser - from seahub.base.accounts import User -from seahub.views import myhome class BaseTestCase(TestCase): """ Helper base class for all the follow test cases. """ def setUp(self): - self.user = User.objects.create_user('lennon@thebeatles.com', 'testpassword', is_active=True) + self.user = User.objects.create_superuser('admin@admin.com', 'testpassword') def tearDown(self): self.user.delete() -class SimpleTest(BaseTestCase): - """ - Use TestClient to do integration testing (ie: entire user checkout process - in shop which includes many steps) and RequestFactory to test independent - view functions behavior and their output (ie. adding product to cart). - """ +class BasicTest(BaseTestCase): def login(self): response = self.client.post('/accounts/login/', { - 'username': 'lennon@thebeatles.com', + 'username': 'admin@admin.com', 'password': 'testpassword', }) self.assertEqual(response.status_code, 302) - def test_details(self): + def test_my_home(self): self.login() r = self.client.get('/home/my/') @@ -48,3 +40,18 @@ class SimpleTest(BaseTestCase): self.assertEqual(len(r.context['owned_repos']), 0) self.assertEqual(len(r.context['in_repos']), 0) + def test_useradmin(self): + self.login() + r = self.client.get('/sys/useradmin/') + + # Check that response is 200 OK + self.assertEqual(r.status_code, 200) + + def test_notificationadmin(self): + self.login() + r = self.client.get('/sys/notificationadmin/') + + # Check that response is 200 OK + self.assertEqual(r.status_code, 200) + + self.assertEqual(len(r.context['notes']), 0)