Просмотр исходного кода

Convert secrets view tests to use StandardTestCases

Jeremy Stretch 6 лет назад
Родитель
Сommit
e8e39dc5e3
1 измененных файлов с 34 добавлено и 56 удалено
  1. 34 56
      netbox/secrets/tests/test_views.py

+ 34 - 56
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):
-
-        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')
+        cls.form_data = {
+            'name': 'Secret Role X',
+            'slug': 'secret-role-x',
+            'description': 'A secret role',
+            'users': [],
+            'groups': [],
+        }
 
-        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 = (