def test_data_and_request_conversion(self): """ Test convert request to data and convert data to request """ schema_nested = schemaish.Structure([ ("one", schemaish.Structure([ ("a", schemaish.String()), ("b", schemaish.String()), ("c", schemaish.Structure([("x", schemaish.String()),("y", schemaish.String())])), ]) ), ]) r = {'one.a':'','one.b': '','one.c.x': '','one.c.y': ''} reqr = {'one.a':None,'one.b': None,'one.c.x': None,'one.c.y': None} reqrdata = {'one.a':[''],'one.b': [''],'one.c.x': [''],'one.c.y': ['']} data = {'one.a': '', 'one.b': '', 'one.c.x': '', 'one.c.y': ''} name = "Nested Form Two" request = Request(name, r) form = formish.Form(schema_nested, name) # request to data rdtd = validation.convert_request_data_to_data(form.structure, dottedDict(copy.deepcopy(request.POST))) assert rdtd == dottedDict(reqr) # data to request dtrd = validation.convert_data_to_request_data(form.structure, dottedDict(data)) assert dtrd == reqrdata
def test_integer_type(self): schema_flat = schemaish.Structure([("a", schemaish.Integer()), ("b", schemaish.String())]) name = "Integer Form" form = formish.Form(schema_flat, name) r = {'a': '3', 'b': '4'} request = Request(name, r) R = copy.deepcopy(r) reqr = {'a': ['3'], 'b': ['4']} # check scmea matches self.assert_(form.structure.attr is schema_flat) # Does the form produce an int and a string self.assertEquals(form.validate(request), {'a': 3, 'b': '4'}) # Does the convert request to data work self.assertEqual( validation.convert_request_data_to_data(form.structure, dottedDict(request.POST)) , {'a': 3, 'b': '4'}) # Does the convert data to request work self.assert_( validation.convert_data_to_request_data(form.structure, dottedDict( {'a': 3, 'b': '4'} )) == reqr)
def test_datetuple_type(self): schema_flat = schemaish.Structure([("a", schemaish.Date()), ("b", schemaish.String())]) name = "Date Form" form = formish.Form(schema_flat, name) form['a'].widget = formish.DateParts() r = {'a.day': '1','a.month': '3','a.year': '1966', 'b': '4'} R = copy.deepcopy(r) request = Request(name, r) from datetime import date d = date(1966,3,1) # Check the data is converted correctly self.assertEquals(form.validate(request), {'a': d, 'b': '4'}) # Check req to data self.assertEqual( validation.convert_request_data_to_data(form.structure, dottedDict(request.POST)) , dottedDict({'a': d, 'b': '4'})) # Check data to req self.assert_( validation.convert_data_to_request_data(form.structure, dottedDict( {'a': d, 'b': '4'} )) == dottedDict({'a': {'month': [3], 'day': [1], 'year': [1966]}, 'b': ['4']}))