mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 08:16:51 -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
|
||||
from functools import partial
|
||||
from time import monotonic
|
||||
from urllib.parse import urlparse, urlunparse
|
||||
|
||||
import jinja2
|
||||
from flask import (
|
||||
@@ -250,6 +251,7 @@ def create_app(application):
|
||||
|
||||
|
||||
def init_app(application):
|
||||
application.before_request(redirect_notify_to_beta)
|
||||
application.before_request(load_service_before_request)
|
||||
application.before_request(load_organization_before_request)
|
||||
application.before_request(request_helper.check_proxy_header_before_request)
|
||||
@@ -328,6 +330,23 @@ def make_session_permanent():
|
||||
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():
|
||||
if "/static/" in request.url:
|
||||
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
|
||||
"""
|
||||
with notify_admin.test_request_context(), notify_admin.test_client() as client:
|
||||
client.allow_subdomain_redirects = True
|
||||
yield client
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user