add DecimalVar tests

This commit is contained in:
klasswell 2025-07-28 08:54:10 -05:00
parent 12750da341
commit 7396c68a9b
No known key found for this signature in database

View File

@ -2,6 +2,7 @@ import logging
import tempfile import tempfile
from datetime import date, datetime, timezone from datetime import date, datetime, timezone
from decimal import Decimal
from django.core.files.uploadedfile import SimpleUploadedFile from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase from django.test import TestCase
from netaddr import IPAddress, IPNetwork from netaddr import IPAddress, IPNetwork
@ -138,6 +139,54 @@ class ScriptVariablesTest(TestCase):
self.assertTrue(form.is_valid()) self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data['var1'], data['var1']) self.assertEqual(form.cleaned_data['var1'], data['var1'])
def test_decimalvar(self):
class TestScript(Script):
var1 = DecimalVar(
min_value=-100.500,
max_value=100.500,
max_digits=6,
decimal_places=3,
required=False
)
var2 = DecimalVar(
max_digits=3,
decimal_places=1,
required=False
)
# Validate min_value enforcement
data = {'var1': -100.501}
form = TestScript().as_form(data, None)
self.assertFalse(form.is_valid())
self.assertIn('var1', form.errors)
# Validate max_value enforcement
data = {'var1': 100.501}
form = TestScript().as_form(data, None)
self.assertFalse(form.is_valid())
self.assertIn('var1', form.errors)
# Validate max_digits enforcement
data = {'var2': 123.4}
form = TestScript().as_form(data, None)
self.assertFalse(form.is_valid())
self.assertIn('var2', form.errors)
# Validate decimal_places
data = {'var2': 1.23}
form = TestScript().as_form(data, None)
self.assertFalse(form.is_valid())
self.assertIn('var2', form.errors)
# Validate valid data
data = {'var1': '50.123'}
form = TestScript().as_form(data, None)
self.assertTrue(form.is_valid())
self.assertEqual(form.cleaned_data['var1'], Decimal(data['var1']))
def test_booleanvar(self): def test_booleanvar(self):
class TestScript(Script): class TestScript(Script):