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

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 dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
 from secrets.models import Secret, SecretRole, SessionKey, UserKey
 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
 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
     @classmethod
     def setUpTestData(cls):
     def setUpTestData(cls):
@@ -23,54 +25,40 @@ class SecretRoleTestCase(TestCase):
             SecretRole(name='Secret Role 3', slug='secret-role-3'),
             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",
             "name,slug",
             "Secret Role 4,secret-role-4",
             "Secret Role 4,secret-role-4",
             "Secret Role 5,secret-role-5",
             "Secret Role 5,secret-role-5",
             "Secret Role 6,secret-role-6",
             "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
     @classmethod
     def setUpTestData(cls):
     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.objects.bulk_create([
             Secret(device=device, role=secretrole, name='Secret 1', ciphertext=b'1234567890'),
             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'),
             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):
     def setUp(self):
 
 
         super().setUp()
         super().setUp()
@@ -89,23 +83,7 @@ class SecretTestCase(TestCase):
         self.session_key = SessionKey(userkey=userkey)
         self.session_key = SessionKey(userkey=userkey)
         self.session_key.save(master_key)
         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')
         self.add_permissions('secrets.add_secret')
 
 
         csv_data = (
         csv_data = (