From e8e39dc5e3ec65400f73b641120da77fe130c0c2 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 31 Jan 2020 15:37:58 -0500 Subject: [PATCH] Convert secrets view tests to use StandardTestCases --- netbox/secrets/tests/test_views.py | 90 +++++++++++------------------- 1 file changed, 34 insertions(+), 56 deletions(-) diff --git a/netbox/secrets/tests/test_views.py b/netbox/secrets/tests/test_views.py index 336a33320..87c1c3683 100644 --- a/netbox/secrets/tests/test_views.py +++ b/netbox/secrets/tests/test_views.py @@ -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 = (