From 28fc535f9e908f616c5e24c3c8d8cef9db16746c Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sun, 22 Nov 2015 14:43:02 +0000 Subject: [PATCH] Add tests for gvawebcore This commit adds tests for gvawebcore.forms and gvawebcore.views. --- gnuviechadmin/gvawebcore/tests/__init__.py | 0 gnuviechadmin/gvawebcore/tests/test_forms.py | 29 +++++++++++++++++ gnuviechadmin/gvawebcore/tests/test_views.py | 34 ++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 gnuviechadmin/gvawebcore/tests/__init__.py create mode 100644 gnuviechadmin/gvawebcore/tests/test_forms.py create mode 100644 gnuviechadmin/gvawebcore/tests/test_views.py diff --git a/gnuviechadmin/gvawebcore/tests/__init__.py b/gnuviechadmin/gvawebcore/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gnuviechadmin/gvawebcore/tests/test_forms.py b/gnuviechadmin/gvawebcore/tests/test_forms.py new file mode 100644 index 0000000..e657829 --- /dev/null +++ b/gnuviechadmin/gvawebcore/tests/test_forms.py @@ -0,0 +1,29 @@ +""" +This module contains tests for :py:mod:`gvawebcore.forms`. + +""" + +from unittest import TestCase + +from gvawebcore.forms import PasswordModelFormMixin, PASSWORD_MISMATCH_ERROR + + +class PasswordModelFormMixinTest(TestCase): + + def test_form_properties(self): + form = PasswordModelFormMixin() + self.assertIn('password1', form.fields) + self.assertIn('password2', form.fields) + + def test_clean_password_same(self): + form = PasswordModelFormMixin(data={ + 'password1': 'secret', 'password2': 'secret'}) + self.assertTrue(form.is_valid()) + self.assertEqual('secret', form.clean_password2()) + + def test_clean_password_different(self): + form = PasswordModelFormMixin(data={ + 'password1': 'onesecret', 'password2': 'other'}) + self.assertFalse(form.is_valid()) + self.assertIn('password2', form.errors) + self.assertIn(PASSWORD_MISMATCH_ERROR, form.errors['password2']) diff --git a/gnuviechadmin/gvawebcore/tests/test_views.py b/gnuviechadmin/gvawebcore/tests/test_views.py new file mode 100644 index 0000000..6c4ca4b --- /dev/null +++ b/gnuviechadmin/gvawebcore/tests/test_views.py @@ -0,0 +1,34 @@ +""" +This model contains tests for :py:mod:`gvawebcore.views`. + +""" + +from unittest import TestCase + +from mock import patch, Mock + +from gvawebcore.views import HostingPackageAndCustomerMixin + + +class HostingPackageAndCustomerMixinTest(TestCase): + + class TestView(HostingPackageAndCustomerMixin): + + kwargs = {'package': '1'} + + @patch('gvawebcore.views.get_object_or_404') + def test_get_hosting_package(self, get_object_or_404): + get_object_or_404.return_value = 'A package' + view = self.TestView() + self.assertEqual('A package', view.get_hosting_package()) + + def test_get_hosting_package_cached(self): + view = self.TestView() + view.hostingpackage = 'Cached package' + self.assertEqual('Cached package', view.get_hosting_package()) + + @patch('gvawebcore.views.get_object_or_404') + def test_get_customer_object(self, get_object_or_404): + get_object_or_404.return_value = Mock(customer='A customer') + view = self.TestView() + self.assertEqual('A customer', view.get_customer_object())