Adding route tests

Removing status code from 404 title

Removing status code from 503 title

Adding id to 503 error box

Indatation fix
This commit is contained in:
Marcus Andersson 2021-05-13 22:02:50 +02:00 committed by Kevin Morris
parent f6744d3e39
commit 1d5827007f
5 changed files with 21 additions and 11 deletions

View file

@ -1,17 +1,14 @@
from aurweb.templates import make_context, render_template from aurweb.templates import make_context, render_template
from aurweb import l10n
async def not_found(request, exc): async def not_found(request, exc):
_ = l10n.get_translator_for_request(request) context = make_context(request, "Page Not Found")
context = make_context(request, f"404 - {_('Page Not Found')}") return render_template("errors/404.html", context, 404)
return render_template("errors/404.html", context)
async def service_unavailable(request, exc): async def service_unavailable(request, exc):
_ = l10n.get_translator_for_request(request) context = make_context(request, "Service Unavailable")
context = make_context(request, "503 - {_('Service Unavailable')}") return render_template("errors/503.html", context, 503)
return render_template("errors/503.html", context)
# Maps HTTP errors to functions # Maps HTTP errors to functions
exceptions = { exceptions = {

View file

@ -4,7 +4,7 @@ own modules and imported here. """
from http import HTTPStatus from http import HTTPStatus
from urllib.parse import unquote from urllib.parse import unquote
from fastapi import APIRouter, Form, Request from fastapi import APIRouter, Form, Request, HTTPException
from fastapi.responses import HTMLResponse, RedirectResponse from fastapi.responses import HTMLResponse, RedirectResponse
from aurweb.templates import make_context, render_template from aurweb.templates import make_context, render_template
@ -48,3 +48,9 @@ async def index(request: Request):
""" Homepage route. """ """ Homepage route. """
context = make_context(request, "Home") context = make_context(request, "Home")
return render_template("index.html", context) return render_template("index.html", context)
# A route that returns a error 503. For testing purposes.
@router.get("/raisefivethree", response_class=HTMLResponse)
async def raise_service_unavailable(request: Request):
raise HTTPException(status_code=503)

View file

@ -1,8 +1,8 @@
{% extends 'partials/layout.html' %} {% extends 'partials/layout.html' %}
{% block pageContent %} {% block pageContent %}
<div class="box 404"> <div id="error-page" class="box 404">
<h2>404 - {% trans %}Page Not Found{% endtrans %}</h2> <h2>404 - {% trans %}Page Not Found{% endtrans %}</h2>
<p>{% trans %}Sorry, the page you've requested does not exist.{% endtrans %}</p> <p>{% trans %}Sorry, the page you've requested does not exist.{% endtrans %}</p>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,7 +1,7 @@
{% extends 'partials/layout.html' %} {% extends 'partials/layout.html' %}
{% block pageContent %} {% block pageContent %}
<div class="box 404"> <div id="error-page" class="box 503">
<h2>503 - {% trans %}Service Unavailable{% endtrans %}</h2> <h2>503 - {% trans %}Service Unavailable{% endtrans %}</h2>
<p>{% trans %}Don't panic! This site is down due to maintenance. We will be back soon.{% endtrans %}</p> <p>{% trans %}Don't panic! This site is down due to maintenance. We will be back soon.{% endtrans %}</p>
</div> </div>

View file

@ -67,3 +67,10 @@ def test_language_query_params():
response = req.post("/language", data=post_data) response = req.post("/language", data=post_data)
assert response.headers.get("location") == f"/?{q}" assert response.headers.get("location") == f"/?{q}"
assert response.status_code == int(HTTPStatus.SEE_OTHER) assert response.status_code == int(HTTPStatus.SEE_OTHER)
def test_error_messages():
response1 = client.get("/thisroutedoesnotexist")
response2 = client.get("/raisefivethree")
assert response1.status_code == int(HTTPStatus.NOT_FOUND)
assert response2.status_code == int(HTTPStatus.SERVICE_UNAVAILABLE)