From c0687cbb837bb81bb1f8cd188416a5ad1d2e56dc Mon Sep 17 00:00:00 2001 From: Zeb DeOs Date: Thu, 24 Apr 2014 09:17:40 -0700 Subject: Fixed #110. Don't ignore forced value on Radio input --- CHANGELOG.rst | 4 +++- tests/test_forms.py | 10 ++++++++++ webtest/forms.py | 4 +++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9399ad9..56876d2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,7 +4,9 @@ News 2.0.16 (unreleased) ------------------- -- Nothing changed yet. +- Fixed #110. Forced values for Radio inputs are no longer ignored by value + property on get. + [bayprogrammer] 2.0.15 (2014-04-17) diff --git a/tests/test_forms.py b/tests/test_forms.py index fffa632..0d7bda4 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -176,6 +176,16 @@ class TestInput(unittest.TestCase): self.assertEqual(form['foo'].value, 'bar') self.assertEqual(form.submit_fields(), [('foo', 'bar')]) + def test_force_radio_input(self): + app = self.callFUT() + res = app.get('/form.html') + + form = res.forms['radio_input_form'] + + form['foo'].force_value('fido') + self.assertEqual(form['foo'].value, 'fido') + self.assertEqual(form.submit_fields(), [('foo', 'fido')]) + def test_input_unicode(self): app = self.callFUT('form_unicode_inputs.html') res = app.get('/form.html') diff --git a/webtest/forms.py b/webtest/forms.py index 8a43001..b84c08f 100644 --- a/webtest/forms.py +++ b/webtest/forms.py @@ -237,7 +237,9 @@ class Radio(Select): """Field representing ````""" def value__get(self): - if self.selectedIndex is not None: + if self._forced_value is not NoValue: + return self._forced_value + elif self.selectedIndex is not None: return self.options[self.selectedIndex][0] else: for option, checked, text in self.options: -- cgit v1.2.1