diff --git a/docs/customization/custom-scripts.md b/docs/customization/custom-scripts.md index ec588bada..76ca7130f 100644 --- a/docs/customization/custom-scripts.md +++ b/docs/customization/custom-scripts.md @@ -287,11 +287,11 @@ An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two a ### DateVar -A date. Returns a `datetime.date` object. +A calendar date. Returns a `datetime.date` object. ### DateTimeVar -A datetime. Returns a `datetime.datetime` object. +A complete date & time. Returns a `datetime.datetime` object. ## Running Custom Scripts diff --git a/netbox/extras/tests/test_scripts.py b/netbox/extras/tests/test_scripts.py index 777a90a8b..bed8f0fc5 100644 --- a/netbox/extras/tests/test_scripts.py +++ b/netbox/extras/tests/test_scripts.py @@ -331,6 +331,12 @@ class ScriptVariablesTest(TestCase): var1 = DateVar() var2 = DateVar(required=False) + # Test date validation + data = {'var1': 'not a date'} + form = TestScript().as_form(data, None) + self.assertFalse(form.is_valid()) + self.assertIn('var1', form.errors) + # Validate valid data input_date = date(2024, 4, 1) data = {'var1': input_date} @@ -347,6 +353,12 @@ class ScriptVariablesTest(TestCase): var1 = DateTimeVar() var2 = DateTimeVar(required=False) + # Test datetime validation + data = {'var1': 'not a datetime'} + form = TestScript().as_form(data, None) + self.assertFalse(form.is_valid()) + self.assertIn('var1', form.errors) + # Validate valid data input_datetime = datetime(2024, 4, 1, 8, 0, 0, 0, timezone.utc) data = {'var1': input_datetime}