Skip to content

Commit a27e008

Browse files
committed
Some number fields tests
1 parent 08b81ea commit a27e008

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

tests/test_db_fields.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,3 +1049,38 @@ def test__parent__init__method_included_in_init_chain(self, db, mocker):
10491049
base_init_spy.assert_called_once()
10501050
field_init_spy.assert_called_once()
10511051
mixin_init_spy.assert_called_once()
1052+
1053+
1054+
@pytest.mark.skipif(condition=wtforms_not_installed, reason="No WTF CI/CD chain")
1055+
@pytest.mark.parametrize(
1056+
"NumberClass",
1057+
[
1058+
db_fields.FloatField,
1059+
db_fields.IntField,
1060+
db_fields.DecimalField,
1061+
],
1062+
)
1063+
class TestNumberFieldCommons:
1064+
@pytest.mark.parametrize(
1065+
["min_", "max_", "validator_min", "validator_max"],
1066+
[
1067+
[None, 3, None, 3],
1068+
[None, -3, None, -3],
1069+
[3, None, 3, None],
1070+
[-3, None, -3, None],
1071+
[-1, -3, -1, -3],
1072+
[3, 5, 3, 5],
1073+
],
1074+
)
1075+
def test__init__method__set_number_range_validator__if_range_given(
1076+
self, NumberClass, min_, max_, validator_min, validator_max
1077+
):
1078+
field = NumberClass(min_value=min_, max_value=max_)
1079+
validator = [
1080+
val
1081+
for val in field.wtf_field_options["validators"]
1082+
if val.__class__ is wtf_validators_.NumberRange
1083+
][0]
1084+
assert validator is not None
1085+
assert validator.min == validator_min
1086+
assert validator.max == validator_max

tests/test_forms_v2.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
wtforms = pytest.importorskip("wtforms")
88
from wtforms import fields as wtf_fields # noqa
9+
from wtforms import widgets as wtf_widgets # noqa
910

1011
from flask_mongoengine.wtf import fields as mongo_fields # noqa
1112

@@ -284,3 +285,9 @@ def test_url_field_mro_not_changed(self):
284285
wtf_fields.URLField,
285286
wtf_fields.StringField,
286287
]
288+
289+
290+
class TestMongoFloatField:
291+
def test_ensure_widget_not_accidentally_replaced(self):
292+
field = mongo_fields.MongoFloatField
293+
assert isinstance(field.widget, wtf_widgets.NumberInput)

0 commit comments

Comments
 (0)