43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
|
#!/usr/bin/python3
|
||
|
|
||
|
from app import make_app
|
||
|
import util
|
||
|
|
||
|
import unittest
|
||
|
import tornado.testing
|
||
|
import json
|
||
|
|
||
|
util.platform_setup()
|
||
|
|
||
|
|
||
|
class TestBaseAPI(tornado.testing.AsyncHTTPTestCase):
|
||
|
"""Example test case"""
|
||
|
def get_app(self):
|
||
|
return make_app()
|
||
|
|
||
|
def test_health_endpoint(self):
|
||
|
response = self.fetch('/v0/health',
|
||
|
method='GET')
|
||
|
self.assertEqual(200, response.code, "GET /health must be available")
|
||
|
|
||
|
health = json.loads(response.body.decode())
|
||
|
|
||
|
self.assertIn('api-version', health, msg="api-version is not provided by health endpoint")
|
||
|
self.assertEqual("v0", health['api-version'], msg="API version should be v0")
|
||
|
self.assertIn('git-version', health, msg="git-version is not provided by health endpoint")
|
||
|
self.assertIn('timestamp', health, msg="timestamp is not provided by health endpoint")
|
||
|
self.assertIn('uptime', health, msg="uptime is not provided by health endpoint")
|
||
|
|
||
|
def test_oas3(self):
|
||
|
response = self.fetch('/v0/oas3',
|
||
|
method='GET')
|
||
|
self.assertEqual(200, response.code, "GET /oas3 must be available")
|
||
|
|
||
|
# check contents against local OAS3.yml
|
||
|
with open('OAS3.yml') as oas3f:
|
||
|
self.assertEqual(response.body.decode(), oas3f.read(), "OAS3 content differs from spec file!")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|