web/lib/django/contrib/auth/tests/models.py
changeset 38 77b6da96e6f1
parent 29 cc9b7e14412b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/lib/django/contrib/auth/tests/models.py	Wed Jun 02 18:57:35 2010 +0200
@@ -0,0 +1,35 @@
+from django.conf import settings
+from django.test import TestCase
+from django.contrib.auth.models import User, SiteProfileNotAvailable
+
+class ProfileTestCase(TestCase):
+    fixtures = ['authtestdata.json']
+    def setUp(self):
+        """Backs up the AUTH_PROFILE_MODULE"""
+        self.old_AUTH_PROFILE_MODULE = getattr(settings,
+                                               'AUTH_PROFILE_MODULE', None)
+
+    def tearDown(self):
+        """Restores the AUTH_PROFILE_MODULE -- if it was not set it is deleted,
+        otherwise the old value is restored"""
+        if self.old_AUTH_PROFILE_MODULE is None and \
+                hasattr(settings, 'AUTH_PROFILE_MODULE'):
+            del settings.AUTH_PROFILE_MODULE
+
+        if self.old_AUTH_PROFILE_MODULE is not None:
+            settings.AUTH_PROFILE_MODULE = self.old_AUTH_PROFILE_MODULE
+
+    def test_site_profile_not_available(self):
+        # calling get_profile without AUTH_PROFILE_MODULE set
+        if hasattr(settings, 'AUTH_PROFILE_MODULE'):
+            del settings.AUTH_PROFILE_MODULE
+        user = User.objects.get(username='testclient')
+        self.assertRaises(SiteProfileNotAvailable, user.get_profile)
+
+        # Bad syntax in AUTH_PROFILE_MODULE: 
+        settings.AUTH_PROFILE_MODULE = 'foobar'
+        self.assertRaises(SiteProfileNotAvailable, user.get_profile)
+
+        # module that doesn't exist
+        settings.AUTH_PROFILE_MODULE = 'foo.bar'
+        self.assertRaises(SiteProfileNotAvailable, user.get_profile)