Add validation stub #5
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()
|
||||
|
||||
|
||||
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]"
|
||||
return tornado.web.Application([
|
||||
(version_path + r"/health", HealthHandler),
|
||||
(version_path + r"/oas3", Oas3Handler),
|
||||
(version_path + r"/validate", ValidateHandler),
|
||||
])
|
||||
|
||||
|
||||
|
@ -81,7 +97,7 @@ def main():
|
|||
|
||||
# Setup
|
||||
|
||||
util.run_tornado_server(make_app(auth_provider),
|
||||
util.run_tornado_server(make_app(),
|
||||
server_port=port)
|
||||
|
||||
# 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!")
|
||||
|
||||
|
||||
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__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in a new issue
sollte die empty entity valid sein?
In diesem Stub ja. Es gibt ja noch keine Validierung.
Sobald wir eine haben, müssen da natürlich auch die passenden Testcases stehen.