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.contenttypes.models import ContentType
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.utils import deepmerge
User = get_user_model()
class AppTest(APITestCase):
def test_root(self):
@ -22,7 +18,7 @@ class AppTest(APITestCase):
class UserTest(APIViewTestCases.APIViewTestCase):
model = User
model = NetBoxUser
view_namespace = 'users'
brief_fields = ['display', 'id', 'url', 'username']
validation_excluded_fields = ['password']
@ -48,11 +44,11 @@ class UserTest(APIViewTestCases.APIViewTestCase):
def setUpTestData(cls):
users = (
User(username='User_1', password='password1'),
User(username='User_2', password='password2'),
User(username='User_3', password='password3'),
NetBoxUser(username='User_1', password='password1'),
NetBoxUser(username='User_2', password='password2'),
NetBoxUser(username='User_3', password='password3'),
)
User.objects.bulk_create(users)
NetBoxUser.objects.bulk_create(users)
def test_that_password_is_changed(self):
"""
@ -71,7 +67,7 @@ class UserTest(APIViewTestCases.APIViewTestCase):
'username': 'user1',
'password': 'abc123',
}
user = User.objects.create_user(**user_credentials)
user = NetBoxUser.objects.create_user(**user_credentials)
data = {
'password': 'newpassword'
@ -82,7 +78,7 @@ class UserTest(APIViewTestCases.APIViewTestCase):
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']))
@ -177,7 +173,7 @@ class TokenTest(
'username': 'user1',
'password': 'abc123',
}
user = User.objects.create_user(**user_credentials)
user = NetBoxUser.objects.create_user(**user_credentials)
data = {
**user_credentials,
@ -216,7 +212,7 @@ class TokenTest(
ObjectPermission.objects.filter(users=self.user).delete()
self.add_permissions('users.add_token')
user2 = User.objects.create_user(username='testuser2')
user2 = NetBoxUser.objects.create_user(username='testuser2')
data = {
'user': user2.id,
}
@ -254,11 +250,11 @@ class ObjectPermissionTest(
Group.objects.bulk_create(groups)
users = (
User(username='User 1', is_active=True),
User(username='User 2', is_active=True),
User(username='User 3', is_active=True),
NetBoxUser(username='User 1', is_active=True),
NetBoxUser(username='User 2', 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')

View File

@ -1,20 +1,17 @@
import datetime
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.contrib.contenttypes.models import ContentType
from django.test import TestCase
from django.utils.timezone import make_aware
from users import filtersets
from users.models import ObjectPermission, Token
from users.models import ObjectPermission, Token, NetBoxUser
from utilities.testing import BaseFilterSetTests
User = get_user_model()
class UserTestCase(TestCase, BaseFilterSetTests):
queryset = User.objects.all()
queryset = NetBoxUser.objects.all()
filterset = filtersets.UserFilterSet
@classmethod
@ -28,7 +25,7 @@ class UserTestCase(TestCase, BaseFilterSetTests):
Group.objects.bulk_create(groups)
users = (
User(
NetBoxUser(
username='User1',
first_name='Hank',
last_name='Hill',
@ -36,32 +33,32 @@ class UserTestCase(TestCase, BaseFilterSetTests):
is_staff=True,
is_superuser=True
),
User(
NetBoxUser(
username='User2',
first_name='Dale',
last_name='Gribble',
email='dale@dalesdeadbug.com'
),
User(
NetBoxUser(
username='User3',
first_name='Bill',
last_name='Dauterive',
email='bill.dauterive@army.mil'
),
User(
NetBoxUser(
username='User4',
first_name='Jeff',
last_name='Boomhauer',
email='boomhauer@dangolemail.com'
),
User(
NetBoxUser(
username='User5',
first_name='Debbie',
last_name='Grund',
is_active=False
)
)
User.objects.bulk_create(users)
NetBoxUser.objects.bulk_create(users)
users[0].groups.set([groups[0]])
users[1].groups.set([groups[1]])
@ -145,11 +142,11 @@ class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
Group.objects.bulk_create(groups)
users = (
User(username='User1'),
User(username='User2'),
User(username='User3'),
NetBoxUser(username='User1'),
NetBoxUser(username='User2'),
NetBoxUser(username='User3'),
)
User.objects.bulk_create(users)
NetBoxUser.objects.bulk_create(users)
object_types = (
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)
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]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'user': [users[0].username, users[1].username]}
@ -232,11 +229,11 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
def setUpTestData(cls):
users = (
User(username='User1'),
User(username='User2'),
User(username='User3'),
NetBoxUser(username='User1'),
NetBoxUser(username='User2'),
NetBoxUser(username='User3'),
)
User.objects.bulk_create(users)
NetBoxUser.objects.bulk_create(users)
future_date = make_aware(datetime.datetime(3000, 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)
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]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
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
User = get_user_model()
from users.models import NetBoxUser
class UserConfigTest(TestCase):
@ -10,7 +8,7 @@ class UserConfigTest(TestCase):
@classmethod
def setUpTestData(cls):
user = User.objects.create_user(username='testuser')
user = NetBoxUser.objects.create_user(username='testuser')
user.config.data = {
'a': True,
'b': {
@ -32,7 +30,7 @@ class UserConfigTest(TestCase):
user.config.save()
def test_get(self):
userconfig = User.objects.get(username='testuser').config
userconfig = NetBoxUser.objects.get(username='testuser').config
# Retrieve root and nested values
self.assertEqual(userconfig.get('a'), True)
@ -52,7 +50,7 @@ class UserConfigTest(TestCase):
self.assertEqual(userconfig.get('b.foo.x.invalid', 'DEFAULT'), 'DEFAULT')
def test_all(self):
userconfig = User.objects.get(username='testuser').config
userconfig = NetBoxUser.objects.get(username='testuser').config
flattened_data = {
'a': True,
'b.foo': 101,
@ -66,7 +64,7 @@ class UserConfigTest(TestCase):
self.assertEqual(userconfig.all(), flattened_data)
def test_set(self):
userconfig = User.objects.get(username='testuser').config
userconfig = NetBoxUser.objects.get(username='testuser').config
# Overwrite existing values
userconfig.set('a', 'abc')
@ -95,7 +93,7 @@ class UserConfigTest(TestCase):
userconfig.set('a.x', 1)
def test_clear(self):
userconfig = User.objects.get(username='testuser').config
userconfig = NetBoxUser.objects.get(username='testuser').config
# Clear existing values
userconfig.clear('a')

View File

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