Fixed #25215 -- Solved reference to forms.HStoreField in declaration of HStoreField

Correct test which was using the model field in a test form.
This commit is contained in:
Curtis Maloney 2015-08-04 10:47:58 +10:00 committed by Markus Holtermann
parent 770449e24b
commit 9f73009e98
3 changed files with 15 additions and 3 deletions

View File

@ -43,4 +43,4 @@ class HStoreField(forms.CharField):
# the same as an empty dict, if the data or initial value we get
# is None, replace it w/ {}.
initial_value = self.to_python(initial)
return super(forms.HStoreField, self).has_changed(initial_value, data)
return super(HStoreField, self).has_changed(initial_value, data)

View File

@ -21,3 +21,6 @@ Bugfixes
* Prevented an exception in ``TestCase.setUpTestData()`` from leaking the
transaction (:ticket:`25176`).
* Fixed ``has_changed()`` method in
:class:`django.contrib.postgres.forms.HStoreField`.

View File

@ -191,12 +191,21 @@ class TestFormField(PostgreSQLTestCase):
form_field = model_field.formfield()
self.assertIsInstance(form_field, forms.HStoreField)
def test_empty_field_has_not_changed(self):
def test_field_has_changed(self):
class HStoreFormTest(Form):
f1 = HStoreField()
f1 = forms.HStoreField()
form_w_hstore = HStoreFormTest()
self.assertFalse(form_w_hstore.has_changed())
form_w_hstore = HStoreFormTest({'f1': '{"a": 1}'})
self.assertTrue(form_w_hstore.has_changed())
form_w_hstore = HStoreFormTest({'f1': '{"a": 1}'}, initial={'f1': '{"a": 1}'})
self.assertFalse(form_w_hstore.has_changed())
form_w_hstore = HStoreFormTest({'f1': '{"a": 2}'}, initial={'f1': '{"a": 1}'})
self.assertTrue(form_w_hstore.has_changed())
class TestValidator(PostgreSQLTestCase):