From 355ebddf893a7e44ab074b013cd832d779709675 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Tue, 12 Mar 2019 11:33:27 -0400 Subject: [PATCH] Add test for preventing values that are not a choice in a RadioField from being saved --- tests/forms/test_base_form.py | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/forms/test_base_form.py diff --git a/tests/forms/test_base_form.py b/tests/forms/test_base_form.py new file mode 100644 index 00000000..fe6456e7 --- /dev/null +++ b/tests/forms/test_base_form.py @@ -0,0 +1,36 @@ +import pytest +from wtforms.fields import RadioField +from werkzeug.datastructures import ImmutableMultiDict + +from atst.forms.forms import BaseForm + + +class FormWithChoices(BaseForm): + force_side = RadioField( + "Choose your side", + choices=[ + ("light", "Light Side"), + ("dark", "Dark Side"), + ("neutral", "Chaotic Neutral"), + ], + ) + + +class TestBaseForm: + class Foo: + person = {"force_side": None} + + obj = Foo() + + def test_radio_field_saves_only_as_choice(self): + form_data_1 = ImmutableMultiDict({"force_side": "None"}) + form_1 = FormWithChoices(form_data_1, obj=self.obj) + assert form_1.data["force_side"] is None + + form_data_2 = ImmutableMultiDict({"force_side": "a fake choice"}) + form_2 = FormWithChoices(form_data_2, obj=self.obj) + assert form_2.data["force_side"] is None + + form_data_3 = ImmutableMultiDict({"force_side": "dark"}) + form_3 = FormWithChoices(form_data_3, obj=self.obj) + assert form_3.data["force_side"] is "dark"