summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeb DeOs <zebdeos@coquilletribe.org>2014-04-24 09:17:40 -0700
committerZeb DeOs <zebdeos@coquilletribe.org>2014-04-24 09:17:40 -0700
commitc0687cbb837bb81bb1f8cd188416a5ad1d2e56dc (patch)
treeccc3c4208ee922b22ee817fdf9b1ecd9c6eea919
parent9d0d1933279a37dd0a8274d1e1f00517833efe50 (diff)
downloadwebtest-c0687cbb837bb81bb1f8cd188416a5ad1d2e56dc.tar.gz
Fixed #110. Don't ignore forced value on Radio input
-rw-r--r--CHANGELOG.rst4
-rw-r--r--tests/test_forms.py10
-rw-r--r--webtest/forms.py4
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 ``<input type="radio">``"""
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: