diff --git a/gnuviechadmin/dashboard/tests/__init__.py b/gnuviechadmin/dashboard/tests/__init__.py new file mode 100644 index 0000000..b01b093 --- /dev/null +++ b/gnuviechadmin/dashboard/tests/__init__.py @@ -0,0 +1,4 @@ +""" +Tests for :py:mod:`dashboard`. + +""" diff --git a/gnuviechadmin/dashboard/tests/test_views.py b/gnuviechadmin/dashboard/tests/test_views.py new file mode 100644 index 0000000..690507a --- /dev/null +++ b/gnuviechadmin/dashboard/tests/test_views.py @@ -0,0 +1,72 @@ +""" +Tests for :py:mod:`dashboard.views`. + +""" + +from django.core.urlresolvers import reverse +from django.test import TestCase +from django.contrib.auth import get_user_model + +from dashboard.views import ( + IndexView, + UserDashboardView, +) + +User = get_user_model() + +TEST_USER = 'test' +TEST_PASSWORD = 'secret' + + +class IndexViewTest(TestCase): + + def test_index_view(self): + response = self.client.get(reverse('dashboard')) + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, 'dashboard/index.html') + + +class UserDashboardViewTest(TestCase): + + def _create_test_user(self): + self.user = User.objects.create(username=TEST_USER) + self.user.set_password(TEST_PASSWORD) + self.user.save() + + def test_user_dashboard_view_no_user(self): + response = self.client.get(reverse( + 'customer_dashboard', kwargs={'slug': TEST_USER})) + self.assertEqual(response.status_code, 404) + + def test_user_dashboard_view_anonymous(self): + User.objects.create(username=TEST_USER) + response = self.client.get(reverse( + 'customer_dashboard', kwargs={'slug': TEST_USER})) + self.assertEqual(response.status_code, 403) + + def test_user_dashboard_view_logged_in_ok(self): + self._create_test_user() + self.assertTrue( + self.client.login(username=TEST_USER, password=TEST_PASSWORD)) + response = self.client.get(reverse( + 'customer_dashboard', kwargs={'slug': TEST_USER})) + self.assertEqual(response.status_code, 200) + + def test_user_dashboard_view_logged_in_template(self): + self._create_test_user() + self.assertTrue( + self.client.login(username=TEST_USER, password=TEST_PASSWORD)) + response = self.client.get(reverse( + 'customer_dashboard', kwargs={'slug': TEST_USER})) + self.assertTemplateUsed(response, 'dashboard/user_dashboard.html') + + def test_user_dashboard_view_logged_in_context_fresh(self): + self._create_test_user() + self.assertTrue( + self.client.login(username=TEST_USER, password=TEST_PASSWORD)) + response = self.client.get(reverse( + 'customer_dashboard', kwargs={'slug': TEST_USER})) + self.assertIn('dashboard_user', response.context) + self.assertEqual(self.user, response.context['dashboard_user']) + self.assertIn('hosting_packages', response.context) + self.assertEqual(len(response.context['hosting_packages']), 0)