From 8bc1091f7325e3e56fce84f7069f11df1fb32b31 Mon Sep 17 00:00:00 2001 From: Aditi Anand Date: Wed, 20 Mar 2024 10:57:04 -0400 Subject: [PATCH] fix for failing tests --- app/commands.py | 10 ++++++---- app/dao/services_dao.py | 2 +- app/history_meta.py | 9 ++++++--- migrations/versions/0395_remove_intl_letters_perm.py | 2 +- migrations/versions/0410_enums_for_everything.py | 6 ++++-- tests/conftest.py | 2 +- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/commands.py b/app/commands.py index 17e8e1058..f56439d1d 100644 --- a/app/commands.py +++ b/app/commands.py @@ -14,7 +14,7 @@ from flask import current_app, json from notifications_python_client.authentication import create_jwt_token from notifications_utils.recipients import RecipientCSV from notifications_utils.template import SMSMessageTemplate -from sqlalchemy import and_ +from sqlalchemy import and_, text from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import NoResultFound @@ -173,13 +173,15 @@ def insert_inbound_numbers_from_file(file_name): print(f"Inserting inbound numbers from {file_name}") with open(file_name) as file: - sql = "insert into inbound_numbers values('{}', '{}', 'sns', null, True, now(), null);" + sql = text( + "insert into inbound_numbers values(:uuid, :line, 'sns', null, True, now(), null);" + ) for line in file: line = line.strip() if line: print(line) - db.session.execute(sql.format(uuid.uuid4(), line)) + db.session.execute(sql, {"uuid": str(uuid.uuid4()), "line": line}) db.session.commit() @@ -333,7 +335,7 @@ def update_jobs_archived_flag(start_date, end_date): and created_at < (date :end + time '00:00:00') """ result = db.session.execute( - sql, {"start": process_date, "end": process_date + timedelta(days=1)} + text(sql), {"start": process_date, "end": process_date + timedelta(days=1)} ) db.session.commit() current_app.logger.info( diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index 7925602b1..f81bd65d5 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -206,7 +206,7 @@ def dao_fetch_all_services_by_user(user_id, only_active=False): query = ( Service.query.filter(Service.users.any(id=user_id)) .order_by(asc(Service.created_at)) - .options(joinedload("users")) + .options(joinedload(Service.users)) ) if only_active: diff --git a/app/history_meta.py b/app/history_meta.py index 0f99745da..5af68b3dd 100644 --- a/app/history_meta.py +++ b/app/history_meta.py @@ -17,7 +17,7 @@ session events. import datetime from sqlalchemy import Column, ForeignKeyConstraint, Integer, Table, util -from sqlalchemy.orm import attributes, class_mapper, object_mapper, registry +from sqlalchemy.orm import attributes, object_mapper, registry from sqlalchemy.orm.properties import ColumnProperty, RelationshipProperty @@ -169,7 +169,9 @@ def _add_version_for_non_super_history_mapper(super_history_mapper, local_mapper def _col_copy(col): orig = col - col = Column(col.name, col.type, nullable=col.nullable, unique=False) + col = Column( + col.name, col.type, nullable=col.nullable, unique=False, default=col.default + ) orig.info["history_copy"] = col # if the column is nullable, we could end up overwriting an on-purpose null value with a default. @@ -189,7 +191,8 @@ class Versioned(object): @classmethod def __declare_last__(cls): - _history_mapper(class_mapper(cls)) + if not hasattr(cls, "__history_mapper__"): + _history_mapper(cls.__mapper__) @classmethod def get_history_model(cls): diff --git a/migrations/versions/0395_remove_intl_letters_perm.py b/migrations/versions/0395_remove_intl_letters_perm.py index f3f8b5c21..2fef9b02b 100644 --- a/migrations/versions/0395_remove_intl_letters_perm.py +++ b/migrations/versions/0395_remove_intl_letters_perm.py @@ -7,8 +7,8 @@ Create Date: 2023-05-23 10:03:10.485368 """ import sqlalchemy as sa from alembic import op -from sqlalchemy.dialects import postgresql from sqlalchemy import text +from sqlalchemy.dialects import postgresql revision = "0395_remove_intl_letters_perm" down_revision = "0394_remove_contact_list" diff --git a/migrations/versions/0410_enums_for_everything.py b/migrations/versions/0410_enums_for_everything.py index b6c9042c6..4467e0e9d 100644 --- a/migrations/versions/0410_enums_for_everything.py +++ b/migrations/versions/0410_enums_for_everything.py @@ -469,7 +469,8 @@ def upgrade(): postgresql_using=enum_using("notification_type", NotificationType), ) # Clobbering bad data here. These are values we don't use any more, and anything with them is unnecessary. - op.execute(""" + op.execute( + """ delete from service_permissions where @@ -480,7 +481,8 @@ def upgrade(): 'international_letters', 'broadcast' ); - """) + """ + ) op.alter_column( "service_permissions", "permission", diff --git a/tests/conftest.py b/tests/conftest.py index 7235c2f32..2c55654dd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -69,7 +69,7 @@ def _notify_db(notify_api): yield db - db.session.remove() + db.session.close_all() db.engine.dispose()