more fixes

This commit is contained in:
Kenneth Kehl
2024-10-30 10:35:49 -07:00
parent 08c9bf54d1
commit 79ceddfee4
3 changed files with 49 additions and 53 deletions

View File

@@ -2,6 +2,7 @@ import uuid
from datetime import timedelta from datetime import timedelta
import pytest import pytest
from sqlalchemy import func, select
from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.exc import NoResultFound
from app import db from app import db
@@ -123,23 +124,17 @@ def test_should_delete_all_invitations_more_than_one_day_old(
): ):
make_invitation(sample_user, sample_service, age=timedelta(hours=48)) make_invitation(sample_user, sample_service, age=timedelta(hours=48))
make_invitation(sample_user, sample_service, age=timedelta(hours=48)) make_invitation(sample_user, sample_service, age=timedelta(hours=48))
assert ( stmt = select(InvitedUser).where(InvitedUser.status != InvitedUserStatus.EXPIRED)
len( result = db.session.execute(stmt).scalars().all()
InvitedUser.query.filter( assert len(result) == 2
InvitedUser.status != InvitedUserStatus.EXPIRED
).all()
)
== 2
)
expire_invitations_created_more_than_two_days_ago() expire_invitations_created_more_than_two_days_ago()
assert ( stmt = (
len( select(func.count())
InvitedUser.query.filter( .select_from(InvitedUser)
InvitedUser.status != InvitedUserStatus.EXPIRED .where(InvitedUser.status != InvitedUserStatus.EXPIRED)
).all()
)
== 0
) )
count = db.session.execute(stmt).scalar() or 0
assert count == 0
def test_should_not_delete_invitations_less_than_two_days_old( def test_should_not_delete_invitations_less_than_two_days_old(
@@ -160,35 +155,28 @@ def test_should_not_delete_invitations_less_than_two_days_old(
email_address="expired@1.com", email_address="expired@1.com",
) )
assert ( stmt = (
len( select(func.count())
InvitedUser.query.filter( .select_from(InvitedUser)
InvitedUser.status != InvitedUserStatus.EXPIRED .where(InvitedUser.status != InvitedUserStatus.EXPIRED)
).all()
)
== 2
) )
count = db.session.execute(stmt).scalar() or 0
assert count == 2
expire_invitations_created_more_than_two_days_ago() expire_invitations_created_more_than_two_days_ago()
assert ( stmt = (
len( select(func.count())
InvitedUser.query.filter( .select_from(InvitedUser)
InvitedUser.status != InvitedUserStatus.EXPIRED .where(InvitedUser.status != InvitedUserStatus.EXPIRED)
).all()
)
== 1
)
assert (
InvitedUser.query.filter(InvitedUser.status != InvitedUserStatus.EXPIRED)
.first()
.email_address
== "valid@2.com"
)
assert (
InvitedUser.query.filter(InvitedUser.status == InvitedUserStatus.EXPIRED)
.first()
.email_address
== "expired@1.com"
) )
count = db.session.execute(stmt).scalar() or 0
assert count == 1
stmt = select(InvitedUser).where(InvitedUser.status != InvitedUserStatus.EXPIRED)
invited_user = db.session.execute(stmt).scalars().first()
assert invited_user.email_address == "valid@2.com"
stmt = select(InvitedUser).where(InvitedUser.status == InvitedUserStatus.EXPIRED)
invited_user = db.session.execute(stmt).scalars().first()
assert invited_user.email_address == "expired@1.com"
def make_invitation(user, service, age=None, email_address="test@test.com"): def make_invitation(user, service, age=None, email_address="test@test.com"):

View File

@@ -2,7 +2,7 @@ from datetime import datetime, timedelta
import pytest import pytest
from freezegun import freeze_time from freezegun import freeze_time
from sqlalchemy import delete, select from sqlalchemy import delete, select, update
from app import db, notification_provider_clients from app import db, notification_provider_clients
from app.dao.provider_details_dao import ( from app.dao.provider_details_dao import (
@@ -69,7 +69,6 @@ def test_should_not_error_if_any_provider_in_code_not_in_database(
stmt = delete(ProviderDetails).where(ProviderDetails.identifier == "sns") stmt = delete(ProviderDetails).where(ProviderDetails.identifier == "sns")
db.session.execute(stmt) db.session.execute(stmt)
db.session.commit() db.session.commit()
# ProviderDetails.query.filter_by(identifier="sns").delete()
assert notification_provider_clients.get_sms_client("sns") assert notification_provider_clients.get_sms_client("sns")
@@ -135,9 +134,13 @@ def test_get_alternative_sms_provider_fails_if_unrecognised():
@freeze_time("2016-01-01 01:00") @freeze_time("2016-01-01 01:00")
def test_get_sms_providers_for_update_returns_providers(restore_provider_details): def test_get_sms_providers_for_update_returns_providers(restore_provider_details):
ProviderDetails.query.filter(ProviderDetails.identifier == "sns").update( stmt = (
{"updated_at": None} update(ProviderDetails)
.where(ProviderDetails.identifier == "sns")
.values({"updated_at": None})
) )
db.session.execute(stmt)
db.session.commit()
resp = _get_sms_providers_for_update(timedelta(hours=1)) resp = _get_sms_providers_for_update(timedelta(hours=1))
@@ -149,9 +152,13 @@ def test_get_sms_providers_for_update_returns_nothing_if_recent_updates(
restore_provider_details, restore_provider_details,
): ):
fifty_nine_minutes_ago = datetime(2016, 1, 1, 0, 1) fifty_nine_minutes_ago = datetime(2016, 1, 1, 0, 1)
ProviderDetails.query.filter(ProviderDetails.identifier == "sns").update( stmt = (
{"updated_at": fifty_nine_minutes_ago} update(ProviderDetails)
.where(ProviderDetails.identifier == "sns")
.values({"updated_at": fifty_nine_minutes_ago})
) )
db.session.execute(stmt)
db.session.commit()
resp = _get_sms_providers_for_update(timedelta(hours=1)) resp = _get_sms_providers_for_update(timedelta(hours=1))

View File

@@ -2,8 +2,9 @@ import datetime
import pytest import pytest
from marshmallow import ValidationError from marshmallow import ValidationError
from sqlalchemy import desc from sqlalchemy import desc, select
from app import db
from app.dao.provider_details_dao import ( from app.dao.provider_details_dao import (
dao_update_provider_details, dao_update_provider_details,
get_provider_details_by_identifier, get_provider_details_by_identifier,
@@ -145,13 +146,13 @@ def test_provider_details_history_schema_returns_user_details(
dao_update_provider_details(current_sms_provider) dao_update_provider_details(current_sms_provider)
current_sms_provider_in_history = ( stmt = (
ProviderDetailsHistory.query.filter( select(ProviderDetailsHistory)
ProviderDetailsHistory.id == current_sms_provider.id .where(ProviderDetailsHistory.id == current_sms_provider.id)
)
.order_by(desc(ProviderDetailsHistory.version)) .order_by(desc(ProviderDetailsHistory.version))
.first()
) )
current_sms_provider_in_history = db.session.execute(stmt).scalars().first()
data = provider_details_schema.dump(current_sms_provider_in_history) data = provider_details_schema.dump(current_sms_provider_in_history)
assert sorted(data["created_by"].keys()) == sorted(["id", "email_address", "name"]) assert sorted(data["created_by"].keys()) == sorted(["id", "email_address", "name"])