From 82c54133fc8bf6f24a9c47ae6dc3e9d736ffa5f2 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Thu, 22 Jun 2023 11:41:30 -0500 Subject: [PATCH 1/8] Added index route with basic html and a link to the docs endpoint --- app/src/app.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/app.py b/app/src/app.py index e885718..b0b9cb6 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -29,6 +29,8 @@ def create_app() -> APIFlask: configure_app(app) register_blueprints(app) + build_index_route(app) + return app @@ -73,3 +75,18 @@ def register_blueprints(app: APIFlask) -> None: def get_project_root_dir() -> str: return os.path.join(os.path.dirname(__file__), "..") + + +def build_index_route(app: APIFlask) -> None: + @app.route("/") + def index(): + return ''' + + + Home + +

Home

+

Visit /docs to view the api documentation for this project.

+ + + ''' From 95723eeba56f5dd313514e77913fcd06a9a39110 Mon Sep 17 00:00:00 2001 From: nava-platform-bot Date: Thu, 22 Jun 2023 16:47:05 +0000 Subject: [PATCH 2/8] Update OpenAPI spec --- app/openapi.generated.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/openapi.generated.yml b/app/openapi.generated.yml index b935bc5..7a9e129 100644 --- a/app/openapi.generated.yml +++ b/app/openapi.generated.yml @@ -10,6 +10,33 @@ tags: - name: Health - name: User paths: + /: + get: + parameters: [] + responses: + '200': + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: The message to return + data: {} + status_code: + type: integer + description: The HTTP status code + warnings: + type: array + items: + $ref: '#/components/schemas/ValidationError' + errors: + type: array + items: + $ref: '#/components/schemas/ValidationError' + description: Successful response + summary: Index /health: get: parameters: [] From 5df981a5c0f2a0920db4e6c8b6272d6dd3e0b7c0 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Thu, 22 Jun 2023 15:30:12 -0500 Subject: [PATCH 3/8] Added index route test, renamed 'build_index_route' to 'register_index' --- app/src/app.py | 4 ++-- app/tests/src/route/test_index_route.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 app/tests/src/route/test_index_route.py diff --git a/app/src/app.py b/app/src/app.py index b0b9cb6..62920a1 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -29,7 +29,7 @@ def create_app() -> APIFlask: configure_app(app) register_blueprints(app) - build_index_route(app) + register_index(app) return app @@ -77,7 +77,7 @@ def get_project_root_dir() -> str: return os.path.join(os.path.dirname(__file__), "..") -def build_index_route(app: APIFlask) -> None: +def register_index(app: APIFlask) -> None: @app.route("/") def index(): return ''' diff --git a/app/tests/src/route/test_index_route.py b/app/tests/src/route/test_index_route.py new file mode 100644 index 0000000..27d36d9 --- /dev/null +++ b/app/tests/src/route/test_index_route.py @@ -0,0 +1,3 @@ +def test_get_index_200(client): + response = client.get("/") + assert response.status_code == 200 From 77603fb13ac7677f2e6eb926a1d0c836c937fd86 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Thu, 22 Jun 2023 15:52:05 -0500 Subject: [PATCH 4/8] Added comment about index route content-type --- app/src/app.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/app.py b/app/src/app.py index 62920a1..e515eab 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -78,6 +78,8 @@ def get_project_root_dir() -> str: def register_index(app: APIFlask) -> None: + # When OpenAPI generates a definition for this route, it incorrectly + # labels the response content type as application/json. @app.route("/") def index(): return ''' From ccea16ea522968ba05f04244cc39312c5711cf89 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Thu, 22 Jun 2023 18:06:21 -0500 Subject: [PATCH 5/8] Added return type annotation to index function --- app/src/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/app.py b/app/src/app.py index e515eab..b05766a 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -81,7 +81,7 @@ def register_index(app: APIFlask) -> None: # When OpenAPI generates a definition for this route, it incorrectly # labels the response content type as application/json. @app.route("/") - def index(): + def index() -> str: return ''' From c0ab18851918ffadcebe23349d6184c2b240d322 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Fri, 23 Jun 2023 07:34:05 -0500 Subject: [PATCH 6/8] ran make format --- app/src/app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/app.py b/app/src/app.py index b05766a..973c0a2 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -82,7 +82,7 @@ def register_index(app: APIFlask) -> None: # labels the response content type as application/json. @app.route("/") def index() -> str: - return ''' + return """ Home @@ -91,4 +91,4 @@ def index() -> str:

Visit /docs to view the api documentation for this project.

- ''' + """ From 1d606f82db634e10276128d81f5f227db824f011 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Wed, 28 Jun 2023 14:15:12 -0500 Subject: [PATCH 7/8] Removed index route from openapi spec --- app/openapi.generated.yml | 27 --------------------------- app/src/app.py | 3 +-- 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/app/openapi.generated.yml b/app/openapi.generated.yml index 7a9e129..b935bc5 100644 --- a/app/openapi.generated.yml +++ b/app/openapi.generated.yml @@ -10,33 +10,6 @@ tags: - name: Health - name: User paths: - /: - get: - parameters: [] - responses: - '200': - content: - application/json: - schema: - type: object - properties: - message: - type: string - description: The message to return - data: {} - status_code: - type: integer - description: The HTTP status code - warnings: - type: array - items: - $ref: '#/components/schemas/ValidationError' - errors: - type: array - items: - $ref: '#/components/schemas/ValidationError' - description: Successful response - summary: Index /health: get: parameters: [] diff --git a/app/src/app.py b/app/src/app.py index 973c0a2..4fdd90d 100644 --- a/app/src/app.py +++ b/app/src/app.py @@ -78,9 +78,8 @@ def get_project_root_dir() -> str: def register_index(app: APIFlask) -> None: - # When OpenAPI generates a definition for this route, it incorrectly - # labels the response content type as application/json. @app.route("/") + @app.doc(hide=True) def index() -> str: return """ From cc47193c6ddad624803cba49d245aaa7e5556557 Mon Sep 17 00:00:00 2001 From: Kyle Gunby Date: Wed, 28 Jun 2023 14:48:42 -0500 Subject: [PATCH 8/8] Added line to test that index route contains part of the expected HTML --- app/tests/src/route/test_index_route.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/tests/src/route/test_index_route.py b/app/tests/src/route/test_index_route.py index 27d36d9..b5301dd 100644 --- a/app/tests/src/route/test_index_route.py +++ b/app/tests/src/route/test_index_route.py @@ -1,3 +1,4 @@ def test_get_index_200(client): response = client.get("/") assert response.status_code == 200 + assert "

Home

" in response.text