Example #1
0
 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
Example #2
0
    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)
Example #3
0
    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']}))