class FormToJsonSchemaTestCase(unittest.TestCase): def setUp(self): self.encoder = DjangoFormToJSONSchema() def test_convert_form(self): form_repr = self.encoder.convert_form(TestForm) print form_repr try: check_schema(form_repr) except Exception as error: print error.message print error.path print error.validator print error.cause raise instance_form_repr = self.encoder.convert_form(TestForm()) check_schema(instance_form_repr) def test_convert_charfield(self): name = 'a_charfield' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'Any string', 'title': 'A charfield', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_charfield(self): #CONSIDER: the json spec doesn't define a textarea, this is an option of alpacajs name = 'a_textarea' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'Any paragraph', 'title': 'A textarea', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_urlfield(self): name = 'url' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'url', 'description': u'', 'title': 'Url', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_booleanfield(self): name = 'a_boolean' ideal_repr = { 'required': [name], 'type': 'boolean', 'description': u'', 'title': 'A boolean', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_select_option(self): name = 'select_option' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'', 'title': 'Select option', 'enum': ['first', 'second'], } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_date(self): name = 'a_date' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'date', 'description': u'', 'title': 'A date', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_datetime(self): name = 'a_datetime' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'datetime', 'description': u'', 'title': 'A datetime', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_decimal(self): name = 'a_decimal' ideal_repr = { 'required': [name], 'type': 'number', 'description': u'', 'title': 'A decimal', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_email(self): name = 'an_email' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'email', 'description': u'', 'title': 'An email', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_file(self): name = 'a_file' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'uri', 'description': u'', 'title': 'A file', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_float(self): name = 'a_float' ideal_repr = { 'required': [name], 'type': 'number', 'description': u'', 'title': 'A float', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_integer(self): name = 'an_integer' ideal_repr = { 'required': [name], 'type': 'integer', 'description': u'', 'title': 'An integer', } field = TestForm.base_fields[name] json_schema = {'properties': {}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr)
class FormToJsonSchemaTestCase(unittest.TestCase): def setUp(self): self.encoder = DjangoFormToJSONSchema() def test_convert_form(self): form_repr = self.encoder.convert_form(TestForm) print form_repr try: check_schema(form_repr) except Exception as error: print error.message print error.path print error.validator print error.cause raise instance_form_repr = self.encoder.convert_form(TestForm()) check_schema(instance_form_repr) def test_convert_charfield(self): name = 'a_charfield' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'Any string', 'title': 'A charfield', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_charfield(self): #CONSIDER: the json spec doesn't define a textarea, this is an option of alpacajs name = 'a_textarea' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'Any paragraph', 'title': 'A textarea', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_urlfield(self): name = 'url' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'url', 'description': u'', 'title': 'Url', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_booleanfield(self): name = 'a_boolean' ideal_repr = { 'required': [name], 'type': 'boolean', 'description': u'', 'title': 'A boolean', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_select_option(self): name = 'select_option' ideal_repr = { 'required': [name], 'type': 'string', 'description': u'', 'title': 'Select option', 'enum': ['first', 'second'], } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_date(self): name = 'a_date' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'date', 'description': u'', 'title': 'A date', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_datetime(self): name = 'a_datetime' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'datetime', 'description': u'', 'title': 'A datetime', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_decimal(self): name = 'a_decimal' ideal_repr = { 'required': [name], 'type': 'number', 'description': u'', 'title': 'A decimal', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_email(self): name = 'an_email' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'email', 'description': u'', 'title': 'An email', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_file(self): name = 'a_file' ideal_repr = { 'required': [name], 'type': 'string', 'format': 'uri', 'description': u'', 'title': 'A file', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_float(self): name = 'a_float' ideal_repr = { 'required': [name], 'type': 'number', 'description': u'', 'title': 'A float', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr) def test_convert_integer(self): name = 'an_integer' ideal_repr = { 'required': [name], 'type': 'integer', 'description': u'', 'title': 'An integer', } field = TestForm.base_fields[name] json_schema = {'properties':{}} schema_repr = self.encoder.convert_formfield(name, field, json_schema) self.assertEqual(schema_repr, ideal_repr)