|
|
@@ -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 = (
|