mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-08 08:28:15 -04:00
Merge pull request #773 from GSA/notify-762
Notify 762 - Redirect notify.gov to beta.notify.gov
This commit is contained in:
@@ -2,6 +2,7 @@ import os
|
|||||||
import pathlib
|
import pathlib
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from time import monotonic
|
from time import monotonic
|
||||||
|
from urllib.parse import urlparse, urlunparse
|
||||||
|
|
||||||
import jinja2
|
import jinja2
|
||||||
from flask import (
|
from flask import (
|
||||||
@@ -250,6 +251,7 @@ def create_app(application):
|
|||||||
|
|
||||||
|
|
||||||
def init_app(application):
|
def init_app(application):
|
||||||
|
application.before_request(redirect_notify_to_beta)
|
||||||
application.before_request(load_service_before_request)
|
application.before_request(load_service_before_request)
|
||||||
application.before_request(load_organization_before_request)
|
application.before_request(load_organization_before_request)
|
||||||
application.before_request(request_helper.check_proxy_header_before_request)
|
application.before_request(request_helper.check_proxy_header_before_request)
|
||||||
@@ -328,6 +330,23 @@ def make_session_permanent():
|
|||||||
session.permanent = True
|
session.permanent = True
|
||||||
|
|
||||||
|
|
||||||
|
def create_beta_url(url):
|
||||||
|
url_created = urlparse(url)
|
||||||
|
url_list = list(url_created)
|
||||||
|
url_list[1] = "beta.notify.gov"
|
||||||
|
url_for_redirect = urlunparse(url_list)
|
||||||
|
return url_for_redirect
|
||||||
|
|
||||||
|
|
||||||
|
def redirect_notify_to_beta():
|
||||||
|
if (
|
||||||
|
current_app.config["NOTIFY_ENVIRONMENT"] == "production"
|
||||||
|
and "beta.notify.gov" not in request.url
|
||||||
|
):
|
||||||
|
url_to_beta = create_beta_url(request.url)
|
||||||
|
return redirect(url_to_beta, 302)
|
||||||
|
|
||||||
|
|
||||||
def load_service_before_request():
|
def load_service_before_request():
|
||||||
if "/static/" in request.url:
|
if "/static/" in request.url:
|
||||||
request_ctx.service = None
|
request_ctx.service = None
|
||||||
|
|||||||
38
tests/app/main/test_beta_redirect.py
Normal file
38
tests/app/main/test_beta_redirect.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
from flask import current_app
|
||||||
|
|
||||||
|
from app import create_beta_url
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_beta_url():
|
||||||
|
url_for_redirect = create_beta_url("https://notify.gov/using-notify/get-started")
|
||||||
|
assert url_for_redirect == "https://beta.notify.gov/using-notify/get-started"
|
||||||
|
|
||||||
|
|
||||||
|
def test_no_redirect_notify_to_beta_non_production(monkeypatch, client_request):
|
||||||
|
monkeypatch.setitem(current_app.config, "NOTIFY_ENVIRONMENT", "development")
|
||||||
|
assert current_app.config["NOTIFY_ENVIRONMENT"] == "development"
|
||||||
|
|
||||||
|
client_request.get_response_from_url(
|
||||||
|
"https://notify.gov/using-notify/get-started",
|
||||||
|
_expected_status=200
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_redirect_notify_to_beta(monkeypatch, client_request):
|
||||||
|
monkeypatch.setitem(current_app.config, "NOTIFY_ENVIRONMENT", "production")
|
||||||
|
assert current_app.config["NOTIFY_ENVIRONMENT"] == "production"
|
||||||
|
|
||||||
|
client_request.get_response_from_url(
|
||||||
|
"https://notify.gov/using-notify/get-started",
|
||||||
|
_expected_status=302
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_no_redirect_beta_notify_to_beta(monkeypatch, client_request):
|
||||||
|
monkeypatch.setitem(current_app.config, "NOTIFY_ENVIRONMENT", "production")
|
||||||
|
assert current_app.config["NOTIFY_ENVIRONMENT"] == "production"
|
||||||
|
|
||||||
|
client_request.get_response_from_url(
|
||||||
|
"https://beta.notify.gov/using-notify/get-started",
|
||||||
|
_expected_status=200
|
||||||
|
)
|
||||||
@@ -2392,6 +2392,7 @@ def _client(notify_admin):
|
|||||||
Do not use this fixture directly – use `client_request` instead
|
Do not use this fixture directly – use `client_request` instead
|
||||||
"""
|
"""
|
||||||
with notify_admin.test_request_context(), notify_admin.test_client() as client:
|
with notify_admin.test_request_context(), notify_admin.test_client() as client:
|
||||||
|
client.allow_subdomain_redirects = True
|
||||||
yield client
|
yield client
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user