Merge pull request 'Add validation stub' (#5) from validation_stub into master
This commit is contained in:
commit
c9b1208236
2 changed files with 38 additions and 2 deletions
20
app.py
20
app.py
|
@ -68,11 +68,27 @@ class Oas3Handler(tornado.web.RequestHandler, metaclass=ABCMeta):
|
||||||
self.finish()
|
self.finish()
|
||||||
|
|
||||||
|
|
||||||
def make_app(_auth_provider=None):
|
class ValidateHandler(tornado.web.RequestHandler, metaclass=ABCMeta):
|
||||||
|
def post(self):
|
||||||
|
self.set_header("Content-Type", "application/json")
|
||||||
|
|
||||||
|
entity = self.request.body.decode()
|
||||||
|
|
||||||
|
# TODO call validator
|
||||||
|
validation_result = {
|
||||||
|
"valid": "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.write(validation_result)
|
||||||
|
self.finish()
|
||||||
|
|
||||||
|
|
||||||
|
def make_app():
|
||||||
version_path = r"/v[0-9]"
|
version_path = r"/v[0-9]"
|
||||||
return tornado.web.Application([
|
return tornado.web.Application([
|
||||||
(version_path + r"/health", HealthHandler),
|
(version_path + r"/health", HealthHandler),
|
||||||
(version_path + r"/oas3", Oas3Handler),
|
(version_path + r"/oas3", Oas3Handler),
|
||||||
|
(version_path + r"/validate", ValidateHandler),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,7 +97,7 @@ def main():
|
||||||
|
|
||||||
# Setup
|
# Setup
|
||||||
|
|
||||||
util.run_tornado_server(make_app(auth_provider),
|
util.run_tornado_server(make_app(),
|
||||||
server_port=port)
|
server_port=port)
|
||||||
|
|
||||||
# Teardown
|
# Teardown
|
||||||
|
|
20
test.py
20
test.py
|
@ -38,5 +38,25 @@ class TestBaseAPI(tornado.testing.AsyncHTTPTestCase):
|
||||||
self.assertEqual(response.body.decode(), oas3f.read(), "OAS3 content differs from spec file!")
|
self.assertEqual(response.body.decode(), oas3f.read(), "OAS3 content differs from spec file!")
|
||||||
|
|
||||||
|
|
||||||
|
class TestValidation(tornado.testing.AsyncHTTPTestCase):
|
||||||
|
"""Validation test cases"""
|
||||||
|
def get_app(self):
|
||||||
|
return make_app()
|
||||||
|
|
||||||
|
def test_null_validation(self):
|
||||||
|
entity = {}
|
||||||
|
|
||||||
|
response = self.fetch('/v0/validate',
|
||||||
|
method='POST',
|
||||||
|
body=json.dumps(entity))
|
||||||
|
|
||||||
|
self.assertEqual(200, response.code, "Validation must always return 200")
|
||||||
|
|
||||||
|
validation_result = json.loads(response.body.decode())
|
||||||
|
|
||||||
|
self.assertIn('valid', validation_result, "Key 'valid' expected in validation result")
|
||||||
|
self.assertTrue(validation_result['valid'], "Validation result is expected to be valid==true")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in a new issue