1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Update tests to use proxy model

This commit is contained in:
Daniel Sheppard
2024-01-22 16:19:34 -06:00
parent df85cc967c
commit 1d784cfe5d
4 changed files with 40 additions and 51 deletions

View File

@ -1,16 +1,12 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.urls import reverse from django.urls import reverse
from users.models import ObjectPermission, Token from users.models import ObjectPermission, Token, NetBoxUser
from utilities.testing import APIViewTestCases, APITestCase, create_test_user from utilities.testing import APIViewTestCases, APITestCase, create_test_user
from utilities.utils import deepmerge from utilities.utils import deepmerge
User = get_user_model()
class AppTest(APITestCase): class AppTest(APITestCase):
def test_root(self): def test_root(self):
@ -22,7 +18,7 @@ class AppTest(APITestCase):
class UserTest(APIViewTestCases.APIViewTestCase): class UserTest(APIViewTestCases.APIViewTestCase):
model = User model = NetBoxUser
view_namespace = 'users' view_namespace = 'users'
brief_fields = ['display', 'id', 'url', 'username'] brief_fields = ['display', 'id', 'url', 'username']
validation_excluded_fields = ['password'] validation_excluded_fields = ['password']
@ -48,11 +44,11 @@ class UserTest(APIViewTestCases.APIViewTestCase):
def setUpTestData(cls): def setUpTestData(cls):
users = ( users = (
User(username='User_1', password='password1'), NetBoxUser(username='User_1', password='password1'),
User(username='User_2', password='password2'), NetBoxUser(username='User_2', password='password2'),
User(username='User_3', password='password3'), NetBoxUser(username='User_3', password='password3'),
) )
User.objects.bulk_create(users) NetBoxUser.objects.bulk_create(users)
def test_that_password_is_changed(self): def test_that_password_is_changed(self):
""" """
@ -71,7 +67,7 @@ class UserTest(APIViewTestCases.APIViewTestCase):
'username': 'user1', 'username': 'user1',
'password': 'abc123', 'password': 'abc123',
} }
user = User.objects.create_user(**user_credentials) user = NetBoxUser.objects.create_user(**user_credentials)
data = { data = {
'password': 'newpassword' 'password': 'newpassword'
@ -82,7 +78,7 @@ class UserTest(APIViewTestCases.APIViewTestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
updated_user = User.objects.get(id=user.id) updated_user = NetBoxUser.objects.get(id=user.id)
self.assertTrue(updated_user.check_password(data['password'])) self.assertTrue(updated_user.check_password(data['password']))
@ -177,7 +173,7 @@ class TokenTest(
'username': 'user1', 'username': 'user1',
'password': 'abc123', 'password': 'abc123',
} }
user = User.objects.create_user(**user_credentials) user = NetBoxUser.objects.create_user(**user_credentials)
data = { data = {
**user_credentials, **user_credentials,
@ -216,7 +212,7 @@ class TokenTest(
ObjectPermission.objects.filter(users=self.user).delete() ObjectPermission.objects.filter(users=self.user).delete()
self.add_permissions('users.add_token') self.add_permissions('users.add_token')
user2 = User.objects.create_user(username='testuser2') user2 = NetBoxUser.objects.create_user(username='testuser2')
data = { data = {
'user': user2.id, 'user': user2.id,
} }
@ -254,11 +250,11 @@ class ObjectPermissionTest(
Group.objects.bulk_create(groups) Group.objects.bulk_create(groups)
users = ( users = (
User(username='User 1', is_active=True), NetBoxUser(username='User 1', is_active=True),
User(username='User 2', is_active=True), NetBoxUser(username='User 2', is_active=True),
User(username='User 3', is_active=True), NetBoxUser(username='User 3', is_active=True),
) )
User.objects.bulk_create(users) NetBoxUser.objects.bulk_create(users)
object_type = ContentType.objects.get(app_label='dcim', model='device') object_type = ContentType.objects.get(app_label='dcim', model='device')

View File

@ -1,20 +1,17 @@
import datetime import datetime
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.test import TestCase from django.test import TestCase
from django.utils.timezone import make_aware from django.utils.timezone import make_aware
from users import filtersets from users import filtersets
from users.models import ObjectPermission, Token from users.models import ObjectPermission, Token, NetBoxUser
from utilities.testing import BaseFilterSetTests from utilities.testing import BaseFilterSetTests
User = get_user_model()
class UserTestCase(TestCase, BaseFilterSetTests): class UserTestCase(TestCase, BaseFilterSetTests):
queryset = User.objects.all() queryset = NetBoxUser.objects.all()
filterset = filtersets.UserFilterSet filterset = filtersets.UserFilterSet
@classmethod @classmethod
@ -28,7 +25,7 @@ class UserTestCase(TestCase, BaseFilterSetTests):
Group.objects.bulk_create(groups) Group.objects.bulk_create(groups)
users = ( users = (
User( NetBoxUser(
username='User1', username='User1',
first_name='Hank', first_name='Hank',
last_name='Hill', last_name='Hill',
@ -36,32 +33,32 @@ class UserTestCase(TestCase, BaseFilterSetTests):
is_staff=True, is_staff=True,
is_superuser=True is_superuser=True
), ),
User( NetBoxUser(
username='User2', username='User2',
first_name='Dale', first_name='Dale',
last_name='Gribble', last_name='Gribble',
email='dale@dalesdeadbug.com' email='dale@dalesdeadbug.com'
), ),
User( NetBoxUser(
username='User3', username='User3',
first_name='Bill', first_name='Bill',
last_name='Dauterive', last_name='Dauterive',
email='bill.dauterive@army.mil' email='bill.dauterive@army.mil'
), ),
User( NetBoxUser(
username='User4', username='User4',
first_name='Jeff', first_name='Jeff',
last_name='Boomhauer', last_name='Boomhauer',
email='boomhauer@dangolemail.com' email='boomhauer@dangolemail.com'
), ),
User( NetBoxUser(
username='User5', username='User5',
first_name='Debbie', first_name='Debbie',
last_name='Grund', last_name='Grund',
is_active=False is_active=False
) )
) )
User.objects.bulk_create(users) NetBoxUser.objects.bulk_create(users)
users[0].groups.set([groups[0]]) users[0].groups.set([groups[0]])
users[1].groups.set([groups[1]]) users[1].groups.set([groups[1]])
@ -145,11 +142,11 @@ class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
Group.objects.bulk_create(groups) Group.objects.bulk_create(groups)
users = ( users = (
User(username='User1'), NetBoxUser(username='User1'),
User(username='User2'), NetBoxUser(username='User2'),
User(username='User3'), NetBoxUser(username='User3'),
) )
User.objects.bulk_create(users) NetBoxUser.objects.bulk_create(users)
object_types = ( object_types = (
ContentType.objects.get(app_label='dcim', model='site'), ContentType.objects.get(app_label='dcim', model='site'),
@ -192,7 +189,7 @@ class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_user(self): def test_user(self):
users = User.objects.filter(username__in=['User1', 'User2']) users = NetBoxUser.objects.filter(username__in=['User1', 'User2'])
params = {'user_id': [users[0].pk, users[1].pk]} params = {'user_id': [users[0].pk, users[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'user': [users[0].username, users[1].username]} params = {'user': [users[0].username, users[1].username]}
@ -232,11 +229,11 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
def setUpTestData(cls): def setUpTestData(cls):
users = ( users = (
User(username='User1'), NetBoxUser(username='User1'),
User(username='User2'), NetBoxUser(username='User2'),
User(username='User3'), NetBoxUser(username='User3'),
) )
User.objects.bulk_create(users) NetBoxUser.objects.bulk_create(users)
future_date = make_aware(datetime.datetime(3000, 1, 1)) future_date = make_aware(datetime.datetime(3000, 1, 1))
past_date = make_aware(datetime.datetime(2000, 1, 1)) past_date = make_aware(datetime.datetime(2000, 1, 1))
@ -252,7 +249,7 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
def test_user(self): def test_user(self):
users = User.objects.order_by('id')[:2] users = NetBoxUser.objects.order_by('id')[:2]
params = {'user_id': [users[0].pk, users[1].pk]} params = {'user_id': [users[0].pk, users[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'user': [users[0].username, users[1].username]} params = {'user': [users[0].username, users[1].username]}

View File

@ -1,8 +1,6 @@
from django.contrib.auth import get_user_model
from django.test import TestCase from django.test import TestCase
from users.models import NetBoxUser
User = get_user_model()
class UserConfigTest(TestCase): class UserConfigTest(TestCase):
@ -10,7 +8,7 @@ class UserConfigTest(TestCase):
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
user = User.objects.create_user(username='testuser') user = NetBoxUser.objects.create_user(username='testuser')
user.config.data = { user.config.data = {
'a': True, 'a': True,
'b': { 'b': {
@ -32,7 +30,7 @@ class UserConfigTest(TestCase):
user.config.save() user.config.save()
def test_get(self): def test_get(self):
userconfig = User.objects.get(username='testuser').config userconfig = NetBoxUser.objects.get(username='testuser').config
# Retrieve root and nested values # Retrieve root and nested values
self.assertEqual(userconfig.get('a'), True) self.assertEqual(userconfig.get('a'), True)
@ -52,7 +50,7 @@ class UserConfigTest(TestCase):
self.assertEqual(userconfig.get('b.foo.x.invalid', 'DEFAULT'), 'DEFAULT') self.assertEqual(userconfig.get('b.foo.x.invalid', 'DEFAULT'), 'DEFAULT')
def test_all(self): def test_all(self):
userconfig = User.objects.get(username='testuser').config userconfig = NetBoxUser.objects.get(username='testuser').config
flattened_data = { flattened_data = {
'a': True, 'a': True,
'b.foo': 101, 'b.foo': 101,
@ -66,7 +64,7 @@ class UserConfigTest(TestCase):
self.assertEqual(userconfig.all(), flattened_data) self.assertEqual(userconfig.all(), flattened_data)
def test_set(self): def test_set(self):
userconfig = User.objects.get(username='testuser').config userconfig = NetBoxUser.objects.get(username='testuser').config
# Overwrite existing values # Overwrite existing values
userconfig.set('a', 'abc') userconfig.set('a', 'abc')
@ -95,7 +93,7 @@ class UserConfigTest(TestCase):
userconfig.set('a.x', 1) userconfig.set('a.x', 1)
def test_clear(self): def test_clear(self):
userconfig = User.objects.get(username='testuser').config userconfig = NetBoxUser.objects.get(username='testuser').config
# Clear existing values # Clear existing values
userconfig.clear('a') userconfig.clear('a')

View File

@ -5,6 +5,7 @@ from django.urls import reverse
from dcim.models import Site from dcim.models import Site
from dcim.tables import SiteTable from dcim.tables import SiteTable
from users.models import NetBoxUser
from users.preferences import UserPreference from users.preferences import UserPreference
from utilities.testing import TestCase from utilities.testing import TestCase
@ -16,9 +17,6 @@ DEFAULT_USER_PREFERENCES = {
} }
User = get_user_model()
class UserPreferencesTest(TestCase): class UserPreferencesTest(TestCase):
user_permissions = ['dcim.view_site'] user_permissions = ['dcim.view_site']
@ -42,7 +40,7 @@ class UserPreferencesTest(TestCase):
@override_settings(DEFAULT_USER_PREFERENCES=DEFAULT_USER_PREFERENCES) @override_settings(DEFAULT_USER_PREFERENCES=DEFAULT_USER_PREFERENCES)
def test_default_preferences(self): def test_default_preferences(self):
user = User.objects.create(username='User 1') user = NetBoxUser.objects.create(username='User 1')
userconfig = user.config userconfig = user.config
self.assertEqual(userconfig.data, DEFAULT_USER_PREFERENCES) self.assertEqual(userconfig.data, DEFAULT_USER_PREFERENCES)