fix more tests

This commit is contained in:
Kenneth Kehl
2024-10-30 11:15:08 -07:00
parent 79ceddfee4
commit 7ee741b91c
6 changed files with 75 additions and 37 deletions

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)

View File

@@ -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

View File

@@ -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