dansheps 6 лет назад
Родитель
Сommit
8ed0d0400f
1 измененных файлов с 50 добавлено и 0 удалено
  1. 50 0
      netbox/extras/tests/test_scripts.py

+ 50 - 0
netbox/extras/tests/test_scripts.py

@@ -145,6 +145,30 @@ class ScriptVariablesTest(TestCase):
         self.assertTrue(form.is_valid())
         self.assertEqual(form.cleaned_data['var1'].pk, data['var1'])
 
+    def test_dynamicobjectvar(self):
+        """
+        Test dynamic version of the objectvar
+        """
+
+        class TestScript(Script):
+
+            var1 = DynamicObjectVar(
+                queryset=DeviceRole.objects.all()
+            )
+
+        # Populate some objects
+        for i in range(1, 6):
+            DeviceRole(
+                name='Device Role {}'.format(i),
+                slug='device-role-{}'.format(i)
+            ).save()
+
+        # Validate valid data
+        data = {'var1': DeviceRole.objects.first().pk}
+        form = TestScript().as_form(data, None)
+        self.assertTrue(form.is_valid())
+        self.assertEqual(form.cleaned_data['var1'].pk, data['var1'])
+
     def test_multiobjectvar(self):
 
         class TestScript(Script):
@@ -168,6 +192,32 @@ class ScriptVariablesTest(TestCase):
         self.assertEqual(form.cleaned_data['var1'][1].pk, data['var1'][1])
         self.assertEqual(form.cleaned_data['var1'][2].pk, data['var1'][2])
 
+    def test_dynamicmultiobjectvar(self):
+        """
+        Test dynamic version of the multiobjectvar
+        """
+
+        class TestScript(Script):
+
+            var1 = DynamicMultiObjectVar(
+                queryset=DeviceRole.objects.all()
+            )
+
+        # Populate some objects
+        for i in range(1, 6):
+            DeviceRole(
+                name='Device Role {}'.format(i),
+                slug='device-role-{}'.format(i)
+            ).save()
+
+        # Validate valid data
+        data = {'var1': [role.pk for role in DeviceRole.objects.all()[:3]]}
+        form = TestScript().as_form(data, None)
+        self.assertTrue(form.is_valid())
+        self.assertEqual(form.cleaned_data['var1'][0].pk, data['var1'][0])
+        self.assertEqual(form.cleaned_data['var1'][1].pk, data['var1'][1])
+        self.assertEqual(form.cleaned_data['var1'][2].pk, data['var1'][2])
+
     def test_filevar(self):
 
         class TestScript(Script):