Convert secrets view tests to use StandardTestCases

This commit is contained in:
Jeremy Stretch 2020-01-31 15:37:58 -05:00
parent b361cb00f2
commit e8e39dc5e3

View File

@ -5,14 +5,16 @@ from django.urls import reverse
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
from secrets.models import Secret, SecretRole, SessionKey, UserKey
from utilities.testing import TestCase
from utilities.testing import StandardTestCases, TestCase
from .constants import PRIVATE_KEY, PUBLIC_KEY
class SecretRoleTestCase(TestCase):
user_permissions = (
'secrets.view_secretrole',
)
class SecretRoleTestCase(StandardTestCases.Views):
model = SecretRole
# Disable inapplicable tests
test_get_object = None
test_delete_object = None
@classmethod
def setUpTestData(cls):
@ -23,54 +25,40 @@ class SecretRoleTestCase(TestCase):
SecretRole(name='Secret Role 3', slug='secret-role-3'),
])
def test_secretrole_list(self):
cls.form_data = {
'name': 'Secret Role X',
'slug': 'secret-role-x',
'description': 'A secret role',
'users': [],
'groups': [],
}
url = reverse('secrets:secretrole_list')
response = self.client.get(url, follow=True)
self.assertHttpStatus(response, 200)
def test_secretrole_import(self):
self.add_permissions('secrets.add_secretrole')
csv_data = (
cls.csv_data = (
"name,slug",
"Secret Role 4,secret-role-4",
"Secret Role 5,secret-role-5",
"Secret Role 6,secret-role-6",
)
response = self.client.post(reverse('secrets:secretrole_import'), {'csv': '\n'.join(csv_data)})
self.assertHttpStatus(response, 200)
self.assertEqual(SecretRole.objects.count(), 6)
class SecretTestCase(StandardTestCases.Views):
model = Secret
# Disable inapplicable tests
test_create_object = None
class SecretTestCase(TestCase):
user_permissions = (
'secrets.view_secret',
)
# TODO: Check permissions enforcement on secrets.views.secret_edit
test_edit_object = None
@classmethod
def setUpTestData(cls):
site = Site(name='Site 1', slug='site-1')
site.save()
manufacturer = Manufacturer(name='Manufacturer 1', slug='manufacturer-1')
manufacturer.save()
devicetype = DeviceType(manufacturer=manufacturer, model='Device Type 1')
devicetype.save()
devicerole = DeviceRole(name='Device Role 1', slug='device-role-1')
devicerole.save()
device = Device(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
device.save()
secretrole = SecretRole(name='Secret Role 1', slug='secret-role-1')
secretrole.save()
site = Site.objects.create(name='Site 1', slug='site-1')
manufacturer = Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1')
devicetype = DeviceType.objects.create(manufacturer=manufacturer, model='Device Type 1')
devicerole = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1')
device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, device_role=devicerole)
secretrole = SecretRole.objects.create(name='Secret Role 1', slug='secret-role-1')
Secret.objects.bulk_create([
Secret(device=device, role=secretrole, name='Secret 1', ciphertext=b'1234567890'),
@ -78,6 +66,12 @@ class SecretTestCase(TestCase):
Secret(device=device, role=secretrole, name='Secret 3', ciphertext=b'1234567890'),
])
cls.form_data = {
'device': device.pk,
'role': secretrole.pk,
'name': 'Secret X',
}
def setUp(self):
super().setUp()
@ -89,23 +83,7 @@ class SecretTestCase(TestCase):
self.session_key = SessionKey(userkey=userkey)
self.session_key.save(master_key)
def test_secret_list(self):
url = reverse('secrets:secret_list')
params = {
"role": SecretRole.objects.first().slug,
}
response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)), follow=True)
self.assertHttpStatus(response, 200)
def test_secret(self):
secret = Secret.objects.first()
response = self.client.get(secret.get_absolute_url(), follow=True)
self.assertHttpStatus(response, 200)
def test_secret_import(self):
def test_import_objects(self):
self.add_permissions('secrets.add_secret')
csv_data = (