mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-10 01:55:41 -04:00
@@ -1,19 +1,49 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from axe_core_python.sync_playwright import Axe
|
from axe_core_python.sync_playwright import Axe
|
||||||
from flask import Flask, current_app
|
from flask import Flask, current_app, url_for
|
||||||
|
from flask import session as flask_session
|
||||||
|
from flask_login import login_user
|
||||||
|
from flask.testing import FlaskClient
|
||||||
|
|
||||||
from app import create_app
|
from app import create_app
|
||||||
|
from app.models.user import User
|
||||||
from app.notify_client.service_api_client import service_api_client
|
from app.notify_client.service_api_client import service_api_client
|
||||||
from app.notify_client.user_api_client import user_api_client
|
from app.notify_client.user_api_client import user_api_client
|
||||||
|
|
||||||
from .. import TestClient
|
from .. import TestClient
|
||||||
|
|
||||||
|
|
||||||
E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI")
|
E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI")
|
||||||
|
|
||||||
|
class TestClient(FlaskClient):
|
||||||
|
def login(self, user, mocker=None, service=None):
|
||||||
|
# Skipping authentication here and just log them in
|
||||||
|
model_user = User(user)
|
||||||
|
with self.session_transaction() as session:
|
||||||
|
session["current_session_id"] = model_user.current_session_id
|
||||||
|
session["user_id"] = model_user.id
|
||||||
|
if mocker:
|
||||||
|
mocker.patch("app.user_api_client.get_user", return_value=user)
|
||||||
|
if mocker and service:
|
||||||
|
with self.session_transaction() as session:
|
||||||
|
session["service_id"] = service["id"]
|
||||||
|
mocker.patch(
|
||||||
|
"app.service_api_client.get_service", return_value={"data": service}
|
||||||
|
)
|
||||||
|
|
||||||
|
with patch("app.events_api_client.create_event"):
|
||||||
|
login_user(model_user, force=True) # forces the user to be logged in.
|
||||||
|
with self.session_transaction() as test_session:
|
||||||
|
for key, value in flask_session.items():
|
||||||
|
test_session[key] = value
|
||||||
|
|
||||||
|
def logout(self, user):
|
||||||
|
self.get(url_for("main.sign_out"))
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def end_to_end_context(browser):
|
def end_to_end_context(browser):
|
||||||
@@ -62,8 +92,8 @@ def notify_admin_e2e():
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def default_user(notify_admin_e2e):
|
def default_user(notify_admin_e2e):
|
||||||
default_user = user_api_client.get_user_by_email(os.getenv("NOTIFY_E2E_TEST_EMAIL"))
|
user_data = user_api_client.get_user_by_email(os.getenv("NOTIFY_E2E_TEST_EMAIL"))
|
||||||
return default_user
|
return user_data
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@@ -88,9 +118,6 @@ def default_service(browser, client, default_user):
|
|||||||
browser_type = browser.browser_type.name
|
browser_type = browser.browser_type.name
|
||||||
service_name = f"E2E Federal Test Service {now} - {browser_type}"
|
service_name = f"E2E Federal Test Service {now} - {browser_type}"
|
||||||
|
|
||||||
from pprint import pprint
|
|
||||||
|
|
||||||
pprint(default_user)
|
|
||||||
service = service_api_client.create_service(
|
service = service_api_client.create_service(
|
||||||
service_name,
|
service_name,
|
||||||
"federal",
|
"federal",
|
||||||
|
|||||||
Reference in New Issue
Block a user