From 437e01c325a6af571f1fa4ef49d64975c2870b5a Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Tue, 21 May 2019 16:06:06 +0200 Subject: [PATCH] BUGFIX when asking for Anonymous user preferences --- basetheme_bootstrap/tests.py | 5 +++++ basetheme_bootstrap/user_preferences.py | 2 ++ setup.py | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/basetheme_bootstrap/tests.py b/basetheme_bootstrap/tests.py index 5bd3599..e0aff44 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 0449344..a3dc8f3 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 a270234..211c889 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', -- GitLab