diff --git a/generate_schema_config.py b/generate_schema_config.py index 35a19de5f33176443ec339ec09968bde7e69cc51..c0ffe04e955f9329a7eba324a74aa519a518afeb 100644 --- a/generate_schema_config.py +++ b/generate_schema_config.py @@ -110,20 +110,8 @@ swagger_config = { }, } -def serve(): - """ - Run as local flask app on port 5000 - """ - # Replace schema route to remove invalid - # definitions: {} - # Should be fixed if Flassger 0.9.7 is released - # - # The last release of flasgger was Aug 2020 - # This bug was fixed in Nov 2021 - # There is a pre-release from May 2023 - # Until the fix gets released we have to - # remove the invalid definitions object - # from the spec + +def configure_flask(swagger_config): app = Flask(__name__) Swagger(app, config=swagger_config, merge=True) @@ -137,6 +125,24 @@ def serve(): response.data = json.dumps(data) return response + return app + + +def serve(swagger_config): + """ + Run as local flask app on port 5000 + """ + # Replace schema route to remove invalid + # definitions: {} + # Should be fixed if Flassger 0.9.7 is released + # + # The last release of flasgger was Aug 2020 + # This bug was fixed in Nov 2021 + # There is a pre-release from May 2023 + # Until the fix gets released we have to + # remove the invalid definitions object + # from the spec + app = configure_flask(swagger_config) app.run(debug=True, host=FLASK_HOST, port=FLASK_PORT) @@ -150,8 +156,7 @@ def compile_schema(swagger_config): The function that returns the definition can't be called outside the flask app context """ - app = Flask(__name__) - Swagger(app, config=swagger_config, merge=True) + app = configure_flask(swagger_config) route = swagger_config['specs'][0]['route'] client = app.test_client() response = client.get(route) @@ -196,4 +201,4 @@ if __name__ == "__main__": # Run flask app if config.get("run_flask"): - serve() + serve(swagger_config)