diff --git a/netbox/users/preferences.py b/netbox/users/preferences.py index c66bc96c0..cff6a3c9b 100644 --- a/netbox/users/preferences.py +++ b/netbox/users/preferences.py @@ -1,5 +1,7 @@ class UserPreference: - + """ + Represents a configurable user preference. + """ def __init__(self, label, choices, default=None, description='', coerce=lambda x: x): self.label = label self.choices = choices diff --git a/netbox/users/tests/test_models.py b/netbox/users/tests/test_models.py index 8047796c4..48d440278 100644 --- a/netbox/users/tests/test_models.py +++ b/netbox/users/tests/test_models.py @@ -1,8 +1,6 @@ from django.contrib.auth.models import User from django.test import TestCase -from users.models import UserConfig - class UserConfigTest(TestCase): diff --git a/netbox/users/tests/test_preferences.py b/netbox/users/tests/test_preferences.py new file mode 100644 index 000000000..23e94e8ef --- /dev/null +++ b/netbox/users/tests/test_preferences.py @@ -0,0 +1,39 @@ +from django.contrib.auth.models import User +from django.test import override_settings, TestCase + +from users.preferences import UserPreference + + +DEFAULT_USER_PREFERENCES = { + 'pagination': { + 'per_page': 250, + } +} + + +class UserPreferencesTest(TestCase): + + def test_userpreference(self): + CHOICES = ( + ('foo', 'Foo'), + ('bar', 'Bar'), + ) + kwargs = { + 'label': 'Test Preference', + 'choices': CHOICES, + 'default': CHOICES[0][0], + 'description': 'Description', + } + userpref = UserPreference(**kwargs) + + self.assertEqual(userpref.label, kwargs['label']) + self.assertEqual(userpref.choices, kwargs['choices']) + self.assertEqual(userpref.default, kwargs['default']) + self.assertEqual(userpref.description, kwargs['description']) + + @override_settings(DEFAULT_USER_PREFERENCES=DEFAULT_USER_PREFERENCES) + def test_default_preferences(self): + user = User.objects.create(username='User 1') + userconfig = user.config + + self.assertEqual(userconfig.data, DEFAULT_USER_PREFERENCES)