def test_validation(self): app = TestApp(main({})) app.get('/service', status=400) res = app.post('/service', params='buh', status=400) self.assertTrue('Not a json body' in res.body) res = app.post('/service', params=json.dumps('buh')) self.assertEqual(res.body, json.dumps({'body': '"buh"'})) app.get('/service?paid=yup') # valid = foo is one res = app.get('/service?foo=1&paid=yup') self.assertEqual(res.json['foo'], 1) # invalid value for foo res = app.get('/service?foo=buh&paid=yup', status=400) # check that json is returned errors = Errors.from_json(res.body) self.assertEqual(len(errors), 1) # the "apidocs" registry entry contains all the needed information # to build up documentation # in this case, this means the function is registered and the argument # of the service are defined (e.g "validator" is set) apidocs = app.app.registry.settings['apidocs'] self.assertEqual(apidocs[('/service', 'POST')]['validator'], _json)
def test_validation(self): app = TestApp(main({})) app.get('/service', status=400) res = app.post('/service', params='buh', status=400) self.assertTrue('Not a json body' in res.body) res = app.post('/service', params=json.dumps('buh')) self.assertEqual(res.body, json.dumps({'body': '"buh"'})) app.get('/service?paid=yup') # valid = foo is one res = app.get('/service?foo=1&paid=yup') self.assertEqual(res.json['foo'], 1) # invalid value for foo res = app.get('/service?foo=buh&paid=yup', status=400) # check that json is returned errors = Errors.from_json(res.body) self.assertEqual(len(errors), 1) # let's see the docstring ! apidocs = app.app.registry.settings['apidocs'] post_doc = apidocs[('/service', 'POST')]['docstring'] self.assertEqual(post_doc, 'The request body should be a JSON object.')