#!/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()