mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-25 02:19:45 -04:00
fix more tests
This commit is contained in:
@@ -6,6 +6,7 @@ import pytest
|
||||
import pytz
|
||||
import requests_mock
|
||||
from flask import current_app, url_for
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm.session import make_transient
|
||||
|
||||
from app import db
|
||||
@@ -100,9 +101,10 @@ def create_sample_notification(
|
||||
|
||||
if job is None and api_key is None:
|
||||
# we didn't specify in test - lets create it
|
||||
api_key = ApiKey.query.filter(
|
||||
stmt = select(ApiKey).where(
|
||||
ApiKey.service == template.service, ApiKey.key_type == key_type
|
||||
).first()
|
||||
)
|
||||
api_key = db.session.execute(stmt).scalars().first()
|
||||
if not api_key:
|
||||
api_key = create_api_key(template.service, key_type=key_type)
|
||||
|
||||
@@ -227,7 +229,8 @@ def sample_service(sample_user):
|
||||
"email_from": email_from,
|
||||
"created_by": sample_user,
|
||||
}
|
||||
service = Service.query.filter_by(name=service_name).first()
|
||||
stmt = select(Service).where(Service.name == service_name)
|
||||
service = db.session.execute(stmt).scalars().first()
|
||||
if not service:
|
||||
service = Service(**data)
|
||||
dao_create_service(service, sample_user, service_permissions=None)
|
||||
@@ -442,9 +445,10 @@ def sample_notification(notify_db_session):
|
||||
service = create_service(check_if_service_exists=True)
|
||||
template = create_template(service=service)
|
||||
|
||||
api_key = ApiKey.query.filter(
|
||||
stmt = select(ApiKey).where(
|
||||
ApiKey.service == template.service, ApiKey.key_type == KeyType.NORMAL
|
||||
).first()
|
||||
)
|
||||
api_key = db.session.execute(stmt).scalars().first()
|
||||
if not api_key:
|
||||
api_key = create_api_key(template.service, key_type=KeyType.NORMAL)
|
||||
|
||||
@@ -595,9 +599,12 @@ def sample_user_service_permission(sample_user):
|
||||
permission = PermissionType.MANAGE_SETTINGS
|
||||
|
||||
data = {"user": sample_user, "service": service, "permission": permission}
|
||||
p_model = Permission.query.filter_by(
|
||||
user=sample_user, service=service, permission=permission
|
||||
).first()
|
||||
stmt = select(Permission).where(
|
||||
Permission.user == sample_user,
|
||||
Permission.service == service,
|
||||
Permission.permission == permission,
|
||||
)
|
||||
p_model = db.session.execute(stmt).scalars().first()
|
||||
if not p_model:
|
||||
p_model = Permission(**data)
|
||||
db.session.add(p_model)
|
||||
@@ -612,12 +619,14 @@ def fake_uuid():
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def ses_provider():
|
||||
return ProviderDetails.query.filter_by(identifier="ses").one()
|
||||
stmt = select(ProviderDetails).where(ProviderDetails.identifier == "ses")
|
||||
return db.session.execute(stmt).scalars().one()
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def sns_provider():
|
||||
return ProviderDetails.query.filter_by(identifier="sns").one()
|
||||
stmt = select(ProviderDetails).where(ProviderDetails.identifier == "sns")
|
||||
return db.session.execute(stmt).scalars().one()
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
|
||||
@@ -2,7 +2,9 @@ import uuid
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from freezegun import freeze_time
|
||||
from sqlalchemy import func, select
|
||||
|
||||
from app import db
|
||||
from app.dao.notifications_dao import (
|
||||
insert_notification_history_delete_notifications,
|
||||
move_notifications_to_notification_history,
|
||||
@@ -172,12 +174,13 @@ def test_move_notifications_just_deletes_test_key_notifications(sample_template)
|
||||
|
||||
assert Notification.query.count() == 0
|
||||
assert NotificationHistory.query.count() == 2
|
||||
assert (
|
||||
NotificationHistory.query.filter(
|
||||
NotificationHistory.key_type == KeyType.TEST
|
||||
).count()
|
||||
== 0
|
||||
stmt = (
|
||||
select(func.count())
|
||||
.select_from(NotificationHistory)
|
||||
.where(NotificationHistory.key_type == KeyType.TEST)
|
||||
)
|
||||
count = db.session.execute(stmt).scalar() or 0
|
||||
assert count == 0
|
||||
|
||||
|
||||
@freeze_time("2020-03-20 14:00")
|
||||
|
||||
@@ -2,6 +2,8 @@ import random
|
||||
import uuid
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from sqlalchemy import select
|
||||
|
||||
from app import db
|
||||
from app.dao import fact_processing_time_dao
|
||||
from app.dao.email_branding_dao import dao_create_email_branding
|
||||
@@ -90,7 +92,8 @@ def create_user(
|
||||
"state": state,
|
||||
"platform_admin": platform_admin,
|
||||
}
|
||||
user = User.query.filter_by(email_address=email).first()
|
||||
stmt = select(User).where(User.email_address == email)
|
||||
user = db.session.execute(stmt).scalars().first()
|
||||
if not user:
|
||||
user = User(**data)
|
||||
save_model_user(user, validated_email_access=True)
|
||||
@@ -130,7 +133,8 @@ def create_service(
|
||||
billing_reference=None,
|
||||
):
|
||||
if check_if_service_exists:
|
||||
service = Service.query.filter_by(name=service_name).first()
|
||||
stmt = select(Service).where(Service.name == service_name)
|
||||
service = db.session.execute(stmt).scalars().first()
|
||||
if (not check_if_service_exists) or (check_if_service_exists and not service):
|
||||
service = Service(
|
||||
name=service_name,
|
||||
@@ -175,7 +179,8 @@ def create_service(
|
||||
def create_service_with_inbound_number(inbound_number="1234567", *args, **kwargs):
|
||||
service = create_service(*args, **kwargs)
|
||||
|
||||
sms_sender = ServiceSmsSender.query.filter_by(service_id=service.id).first()
|
||||
stmt = select(ServiceSmsSender).where(ServiceSmsSender.service_id == service.id)
|
||||
sms_sender = db.session.execute(stmt).scalars().first()
|
||||
inbound = create_inbound_number(number=inbound_number, service_id=service.id)
|
||||
update_existing_sms_sender_with_inbound_number(
|
||||
service_sms_sender=sms_sender,
|
||||
@@ -189,7 +194,8 @@ def create_service_with_inbound_number(inbound_number="1234567", *args, **kwargs
|
||||
def create_service_with_defined_sms_sender(sms_sender_value="1234567", *args, **kwargs):
|
||||
service = create_service(*args, **kwargs)
|
||||
|
||||
sms_sender = ServiceSmsSender.query.filter_by(service_id=service.id).first()
|
||||
stmt = select(ServiceSmsSender).where(ServiceSmsSender.service_id == service.id)
|
||||
sms_sender = db.session.execute(stmt).scalars().first()
|
||||
dao_update_service_sms_sender(
|
||||
service_id=service.id,
|
||||
service_sms_sender_id=sms_sender.id,
|
||||
@@ -286,9 +292,10 @@ def create_notification(
|
||||
|
||||
if not one_off and (job is None and api_key is None):
|
||||
# we did not specify in test - lets create it
|
||||
api_key = ApiKey.query.filter(
|
||||
stmt = select(ApiKey).where(
|
||||
ApiKey.service == template.service, ApiKey.key_type == key_type
|
||||
).first()
|
||||
)
|
||||
api_key = db.session.execute(stmt).scalars().first()
|
||||
if not api_key:
|
||||
api_key = create_api_key(template.service, key_type=key_type)
|
||||
|
||||
|
||||
@@ -6,8 +6,10 @@ from unittest.mock import ANY
|
||||
import pytest
|
||||
from flask import current_app, url_for
|
||||
from freezegun import freeze_time
|
||||
from sqlalchemy import func, select
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from app import db
|
||||
from app.dao.organization_dao import dao_add_service_to_organization
|
||||
from app.dao.service_sms_sender_dao import dao_get_sms_senders_by_service_id
|
||||
from app.dao.service_user_dao import dao_get_service_user
|
||||
@@ -424,9 +426,8 @@ def test_create_service(
|
||||
|
||||
assert json_resp["data"]["name"] == "created service"
|
||||
|
||||
service_sms_senders = ServiceSmsSender.query.filter_by(
|
||||
service_id=service_db.id
|
||||
).all()
|
||||
stmt = select(ServiceSmsSender).where(ServiceSmsSender.service_id == service_db.id)
|
||||
service_sms_senders = db.session.execute(stmt).scalars().all()
|
||||
assert len(service_sms_senders) == 1
|
||||
assert service_sms_senders[0].sms_sender == current_app.config["FROM_NUMBER"]
|
||||
|
||||
@@ -530,7 +531,13 @@ def test_create_service_should_raise_exception_and_not_create_service_if_annual_
|
||||
|
||||
annual_billing = AnnualBilling.query.all()
|
||||
assert len(annual_billing) == 0
|
||||
assert len(Service.query.filter(Service.name == "created service").all()) == 0
|
||||
stmt = (
|
||||
select(func.count())
|
||||
.select_from(Service)
|
||||
.where(Service.name == "created service")
|
||||
)
|
||||
count = db.session.execute(stmt).scalar() or 0
|
||||
assert count == 0
|
||||
|
||||
|
||||
def test_create_service_inherits_branding_from_organization(
|
||||
@@ -933,7 +940,8 @@ def test_update_service_flags_will_remove_service_permissions(
|
||||
assert resp.status_code == 200
|
||||
assert ServicePermissionType.INTERNATIONAL_SMS not in result["data"]["permissions"]
|
||||
|
||||
permissions = ServicePermission.query.filter_by(service_id=service.id).all()
|
||||
stmt = select(ServicePermission).where(ServicePermission.service_id == service.id)
|
||||
permissions = db.session.execute(stmt).scalars().all()
|
||||
assert {p.permission for p in permissions} == {
|
||||
ServicePermissionType.SMS,
|
||||
ServicePermissionType.EMAIL,
|
||||
@@ -1004,9 +1012,10 @@ def test_add_service_permission_will_add_permission(
|
||||
headers=[("Content-Type", "application/json"), auth_header],
|
||||
)
|
||||
|
||||
permissions = ServicePermission.query.filter_by(
|
||||
service_id=service_with_no_permissions.id
|
||||
).all()
|
||||
stmt = select(ServicePermission).where(
|
||||
ServicePermission.service_id == service_with_no_permissions.id
|
||||
)
|
||||
permissions = db.session.execute(stmt).scalars().all()
|
||||
|
||||
assert resp.status_code == 200
|
||||
assert [p.permission for p in permissions] == [permission_to_add]
|
||||
@@ -3318,8 +3327,13 @@ def test_add_service_sms_sender_when_it_is_an_inbound_number_inserts_new_sms_sen
|
||||
assert resp_json["inbound_number_id"] == str(inbound_number.id)
|
||||
assert resp_json["is_default"]
|
||||
|
||||
senders = ServiceSmsSender.query.filter_by(service_id=service.id).all()
|
||||
assert len(senders) == 3
|
||||
stmt = (
|
||||
select(func.count())
|
||||
.select_from(ServiceSmsSender)
|
||||
.where(ServiceSmsSender.service_id == service.id)
|
||||
)
|
||||
senders = db.session.execute(stmt).scalar() or 0
|
||||
assert senders == 3
|
||||
|
||||
|
||||
def test_add_service_sms_sender_switches_default(client, notify_db_session):
|
||||
@@ -3341,7 +3355,8 @@ def test_add_service_sms_sender_switches_default(client, notify_db_session):
|
||||
assert resp_json["sms_sender"] == "second"
|
||||
assert not resp_json["inbound_number_id"]
|
||||
assert resp_json["is_default"]
|
||||
sms_senders = ServiceSmsSender.query.filter_by(sms_sender="first").first()
|
||||
stmt = select(ServiceSmsSender).where(ServiceSmsSender.sms_sender == "first")
|
||||
sms_senders = db.session.execute(stmt).scalars().first()
|
||||
assert not sms_senders.is_default
|
||||
|
||||
|
||||
@@ -3407,7 +3422,8 @@ def test_update_service_sms_sender_switches_default(client, notify_db_session):
|
||||
assert resp_json["sms_sender"] == "second"
|
||||
assert not resp_json["inbound_number_id"]
|
||||
assert resp_json["is_default"]
|
||||
sms_senders = ServiceSmsSender.query.filter_by(sms_sender="first").first()
|
||||
stmt = select(ServiceSmsSender).where(ServiceSmsSender.sms_sender == "first")
|
||||
sms_senders = db.session.execute(stmt).scalars().first()
|
||||
assert not sms_senders.is_default
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ from datetime import datetime, timedelta
|
||||
|
||||
import pytest
|
||||
from freezegun import freeze_time
|
||||
from sqlalchemy import select
|
||||
|
||||
from app import db
|
||||
from app.dao.templates_dao import dao_get_template_by_id, dao_redact_template
|
||||
from app.enums import ServicePermissionType, TemplateProcessType, TemplateType
|
||||
from app.models import Template, TemplateHistory
|
||||
@@ -86,7 +88,8 @@ def test_create_a_new_template_for_a_service_adds_folder_relationship(
|
||||
data=data,
|
||||
)
|
||||
assert response.status_code == 201
|
||||
template = Template.query.filter(Template.name == "my template").first()
|
||||
stmt = select(Template).where(Template.name == "my template")
|
||||
template = db.session.execute(stmt).scalars().first()
|
||||
assert template.folder == parent_folder
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user