def test_formfield(self): from jsonfield2.forms import JSONFormField from jsonfield2.widgets import JSONWidget field = JSONField("test") field.set_attributes_from_name("json") formfield = field.formfield() self.assertEqual(type(formfield), JSONFormField) self.assertEqual(type(formfield.widget), JSONWidget)
def test_formfield_clean_none(self): field = JSONField("test") formfield = field.formfield() self.assertRaisesMessage(forms.ValidationError, force_text( formfield.error_messages['required']), formfield.clean, value=None)
def test_db_prep_save(self): field = JSONField("test") field.set_attributes_from_name("json") self.assertEqual(None, field.get_db_prep_save(None, connection=None)) self.assertEqual( '{"spam": "eggs"}', field.get_db_prep_save({"spam": "eggs"}, connection=None))
def test_formfield_blank_clean_none(self): # Hmm, I'm not sure how to do this. What happens if we pass a # None to a field that has null=False? field = JSONField("test", null=False, blank=True) formfield = field.formfield() self.assertEqual(formfield.clean(value=None), None)
def test_formfield_blank_clean_blank(self): field = JSONField("test", null=False, blank=True) formfield = field.formfield() self.assertEqual(formfield.clean(value=''), '')
def test_formfield_null_and_blank_clean_none(self): field = JSONField("test", null=True, blank=True) formfield = field.formfield() self.assertEqual(formfield.clean(value=None), None)
def test_formfield_clean_none(self): field = JSONField("test") formfield = field.formfield() self.assertRaisesMessage(forms.ValidationError, force_text(formfield.error_messages['required']), formfield.clean, value=None)
def test_db_prep_save(self): field = JSONField("test") field.set_attributes_from_name("json") self.assertEqual(None, field.get_db_prep_save(None, connection=None)) self.assertEqual('{"spam": "eggs"}', field.get_db_prep_save({"spam": "eggs"}, connection=None))
def test_indent(self): JSONField('test', indent=2)
def test_invalid_json_default(self): with self.assertRaises(ValueError): JSONField('test', default='{"foo"}')