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
from datetime import date, datetime, timezone
from decimal import Decimal
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
from netaddr import IPAddress, IPNetwork
@ -138,6 +139,54 @@ class ScriptVariablesTest(TestCase):
self.assertTrue(form.is_valid())
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):
class TestScript(Script):