|
|
@@ -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):
|