mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
106 lines
2.7 KiB
Python
106 lines
2.7 KiB
Python
|
import urllib.parse
|
||
|
import uuid
|
||
|
|
||
|
from django.contrib.auth.models import User
|
||
|
from django.test import Client, TestCase
|
||
|
from django.urls import reverse
|
||
|
from taggit.models import Tag
|
||
|
|
||
|
from dcim.models import Site
|
||
|
from extras.models import ConfigContext, ObjectChange
|
||
|
|
||
|
|
||
|
class TagTestCase(TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
|
||
|
self.client = Client()
|
||
|
|
||
|
Tag.objects.bulk_create([
|
||
|
Tag(name='Tag 1', slug='tag-1'),
|
||
|
Tag(name='Tag 2', slug='tag-2'),
|
||
|
Tag(name='Tag 3', slug='tag-3'),
|
||
|
])
|
||
|
|
||
|
def test_tag_list(self):
|
||
|
|
||
|
url = reverse('extras:tag_list')
|
||
|
params = {
|
||
|
"q": "tag",
|
||
|
}
|
||
|
|
||
|
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)))
|
||
|
self.assertEqual(response.status_code, 200)
|
||
|
|
||
|
|
||
|
class ConfigContextTestCase(TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
|
||
|
self.client = Client()
|
||
|
|
||
|
site = Site(name='Site 1', slug='site-1')
|
||
|
site.save()
|
||
|
|
||
|
# Create three ConfigContexts
|
||
|
for i in range(1, 4):
|
||
|
configcontext = ConfigContext(
|
||
|
name='Config Context {}'.format(i),
|
||
|
data='{{"foo": {}}}'.format(i)
|
||
|
)
|
||
|
configcontext.save()
|
||
|
configcontext.sites.add(site)
|
||
|
|
||
|
def test_configcontext_list(self):
|
||
|
|
||
|
url = reverse('extras:configcontext_list')
|
||
|
params = {
|
||
|
"q": "foo",
|
||
|
}
|
||
|
|
||
|
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)))
|
||
|
self.assertEqual(response.status_code, 200)
|
||
|
|
||
|
def test_configcontext(self):
|
||
|
|
||
|
configcontext = ConfigContext.objects.first()
|
||
|
response = self.client.get(configcontext.get_absolute_url())
|
||
|
self.assertEqual(response.status_code, 200)
|
||
|
|
||
|
|
||
|
class ObjectChangeTestCase(TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
|
||
|
self.client = Client()
|
||
|
|
||
|
user = User(username='testuser', email='testuser@example.com')
|
||
|
user.save()
|
||
|
|
||
|
site = Site(name='Site 1', slug='site-1')
|
||
|
site.save()
|
||
|
|
||
|
# Create three ObjectChanges
|
||
|
for i in range(1, 4):
|
||
|
site.log_change(
|
||
|
user=user,
|
||
|
request_id=uuid.uuid4(),
|
||
|
action=2
|
||
|
)
|
||
|
|
||
|
def test_objectchange_list(self):
|
||
|
|
||
|
url = reverse('extras:objectchange_list')
|
||
|
params = {
|
||
|
"user": User.objects.first(),
|
||
|
}
|
||
|
|
||
|
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)))
|
||
|
self.assertEqual(response.status_code, 200)
|
||
|
|
||
|
def test_objectchange(self):
|
||
|
|
||
|
objectchange = ObjectChange.objects.first()
|
||
|
response = self.client.get(objectchange.get_absolute_url())
|
||
|
self.assertEqual(response.status_code, 200)
|