diff --git a/basetheme_bootstrap/tests.py b/basetheme_bootstrap/tests.py index 5bd3599226b73774c3719888c2e6836a29d05439..e0aff444cbde5cff9cbdf01040adfe1f1e45d6ec 100644 --- a/basetheme_bootstrap/tests.py +++ b/basetheme_bootstrap/tests.py @@ -2,12 +2,14 @@ import os from django.conf import settings from django.contrib.auth import get_user_model +from django.contrib.auth.models import AnonymousUser from django.core.cache import cache from django.core.exceptions import ValidationError from django.test import TestCase, RequestFactory, override_settings from django.urls import reverse from basetheme_bootstrap import user_preferences +from basetheme_bootstrap.user_preferences import get_user_preferences_for_user class AboutPageTests(TestCase): @@ -337,6 +339,9 @@ class UserPreferencesTests(TestCase): pref.user = None self.assertRaises(ValidationError, pref.save) + def test_AnonymousUser_do_not_crash(self): + get_user_preferences_for_user(AnonymousUser()) + def test_caching_disabled_status_when_it_is_the_case(self): user_preferences.get_user_preference_class() self.assertTrue( diff --git a/basetheme_bootstrap/user_preferences.py b/basetheme_bootstrap/user_preferences.py index 0449344cf69329fae0ccce04abaca3969cdea1bb..a3dc8f376d5925353058b3e3e111e3cfd1203075 100644 --- a/basetheme_bootstrap/user_preferences.py +++ b/basetheme_bootstrap/user_preferences.py @@ -55,6 +55,8 @@ class UserPreferencesAbstractModel(models.Model): def get_for_user(cls, user): try: pref = cls.objects.get(user=user) + except TypeError: + return cls.get_for_user(None) except cls.DoesNotExist: pref, _ = cls.objects.get_or_create(user=None) if user is not None: diff --git a/setup.py b/setup.py index a270234b6d3a0b986e70d5d4d8f9a405ac6dcef0..211c8890752508763f8dd902388b3a67d984756e 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ readme = open('README.rst').read() setup( name='django-basetheme-bootstrap', - version='0.1.1', + version='0.1.2', description='Django Basetheme Bootstrap', long_description=readme, author='Bryan Brancotte',