mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-09 02:43:55 -04:00
clean up after model update
This commit is contained in:
56
migrations/versions/0389_no_more_letters.py
Normal file
56
migrations/versions/0389_no_more_letters.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""
|
||||
|
||||
Revision ID: 0389_no_more_letters.py
|
||||
Revises: 0388_no_serv_letter_contact.py
|
||||
Create Date: 2023-02-28 08:58:38.310095
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = '0389_no_more_letters.py'
|
||||
down_revision = '0388_no_serv_letter_contact.py'
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_index('ix_returned_letters_service_id', table_name='returned_letters')
|
||||
op.drop_table('returned_letters')
|
||||
op.drop_index('ix_daily_sorted_letter_billing_day', table_name='daily_sorted_letter')
|
||||
op.drop_index('ix_daily_sorted_letter_file_name', table_name='daily_sorted_letter')
|
||||
op.drop_table('daily_sorted_letter')
|
||||
op.drop_column('services', 'volume_letter')
|
||||
op.drop_column('services_history', 'volume_letter')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('services_history', sa.Column('volume_letter', sa.INTEGER(), autoincrement=False, nullable=True))
|
||||
op.add_column('services', sa.Column('volume_letter', sa.INTEGER(), autoincrement=False, nullable=True))
|
||||
op.create_table('daily_sorted_letter',
|
||||
sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False),
|
||||
sa.Column('billing_day', sa.DATE(), autoincrement=False, nullable=False),
|
||||
sa.Column('unsorted_count', sa.INTEGER(), autoincrement=False, nullable=False),
|
||||
sa.Column('sorted_count', sa.INTEGER(), autoincrement=False, nullable=False),
|
||||
sa.Column('updated_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
|
||||
sa.Column('file_name', sa.VARCHAR(), autoincrement=False, nullable=True),
|
||||
sa.PrimaryKeyConstraint('id', name='daily_sorted_letter_pkey'),
|
||||
sa.UniqueConstraint('file_name', 'billing_day', name='uix_file_name_billing_day')
|
||||
)
|
||||
op.create_index('ix_daily_sorted_letter_file_name', 'daily_sorted_letter', ['file_name'], unique=False)
|
||||
op.create_index('ix_daily_sorted_letter_billing_day', 'daily_sorted_letter', ['billing_day'], unique=False)
|
||||
op.create_table('returned_letters',
|
||||
sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False),
|
||||
sa.Column('reported_at', sa.DATE(), autoincrement=False, nullable=False),
|
||||
sa.Column('service_id', postgresql.UUID(), autoincrement=False, nullable=False),
|
||||
sa.Column('notification_id', postgresql.UUID(), autoincrement=False, nullable=False),
|
||||
sa.Column('created_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=False),
|
||||
sa.Column('updated_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
|
||||
sa.ForeignKeyConstraint(['service_id'], ['services.id'], name='returned_letters_service_id_fkey'),
|
||||
sa.PrimaryKeyConstraint('id', name='returned_letters_pkey'),
|
||||
sa.UniqueConstraint('notification_id', name='returned_letters_notification_id_key')
|
||||
)
|
||||
op.create_index('ix_returned_letters_service_id', 'returned_letters', ['service_id'], unique=False)
|
||||
# ### end Alembic commands ###
|
||||
33
migrations/versions/0390_drop_dvla_provider.py
Normal file
33
migrations/versions/0390_drop_dvla_provider.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""
|
||||
|
||||
Revision ID: 0390_drop_dvla_provider.py
|
||||
Revises: 0389_no_more_letters.py
|
||||
Create Date: 2023-02-28 14:25:50.751952
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = '0390_drop_dvla_provider.py'
|
||||
down_revision = '0389_no_more_letters.py'
|
||||
|
||||
|
||||
def upgrade():
|
||||
# op.execute("DELETE FROM provider_rates where provider_id = (SELECT id from provider_details where display_name='DVLA')")
|
||||
op.execute("DELETE FROM provider_details_history where display_name = 'DVLA'")
|
||||
op.execute("DELETE FROM provider_details where display_name = 'DVLA'")
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# migration 0066 in reverse
|
||||
provider_id = str(uuid.uuid4())
|
||||
op.execute(
|
||||
"INSERT INTO provider_details (id, display_name, identifier, priority, notification_type, active, version) values ('{}', 'DVLA', 'dvla', 50, 'letter', true, 1)".format(provider_id)
|
||||
)
|
||||
op.execute(
|
||||
"INSERT INTO provider_details_history (id, display_name, identifier, priority, notification_type, active, version) values ('{}', 'DVLA', 'dvla', 50, 'letter', true, 1)".format(provider_id)
|
||||
)
|
||||
op.execute("INSERT INTO provider_rates (id, valid_from, rate, provider_id) VALUES ('{}', '{}', 1.0, '{}')".format(uuid.uuid4(), datetime.utcnow(), provider_id))
|
||||
# ### end Alembic commands ###
|
||||
@@ -17,27 +17,23 @@ from tests.app.db import create_service, create_service_data_retention
|
||||
|
||||
def test_fetch_service_data_retention(sample_service):
|
||||
email_data_retention = insert_service_data_retention(sample_service.id, 'email', 3)
|
||||
letter_data_retention = insert_service_data_retention(sample_service.id, 'letter', 30)
|
||||
sms_data_retention = insert_service_data_retention(sample_service.id, 'sms', 5)
|
||||
|
||||
list_of_data_retention = fetch_service_data_retention(sample_service.id)
|
||||
|
||||
assert len(list_of_data_retention) == 3
|
||||
assert len(list_of_data_retention) == 2
|
||||
assert list_of_data_retention[0] == email_data_retention
|
||||
assert list_of_data_retention[1] == sms_data_retention
|
||||
assert list_of_data_retention[2] == letter_data_retention
|
||||
|
||||
|
||||
def test_fetch_service_data_retention_only_returns_row_for_service(sample_service):
|
||||
another_service = create_service(service_name="Another service")
|
||||
email_data_retention = insert_service_data_retention(sample_service.id, 'email', 3)
|
||||
letter_data_retention = insert_service_data_retention(sample_service.id, 'letter', 30)
|
||||
insert_service_data_retention(another_service.id, 'sms', 5)
|
||||
|
||||
list_of_data_retention = fetch_service_data_retention(sample_service.id)
|
||||
assert len(list_of_data_retention) == 2
|
||||
assert len(list_of_data_retention) == 1
|
||||
assert list_of_data_retention[0] == email_data_retention
|
||||
assert list_of_data_retention[1] == letter_data_retention
|
||||
|
||||
|
||||
def test_fetch_service_data_retention_returns_empty_list_when_no_rows_for_service(sample_service):
|
||||
@@ -136,9 +132,7 @@ def test_update_service_data_retention_does_not_update_row_if_data_retention_is_
|
||||
|
||||
@pytest.mark.parametrize('notification_type, alternate',
|
||||
[('sms', 'email'),
|
||||
('email', 'sms'),
|
||||
('letter', 'email'),
|
||||
('letter', 'sms')]
|
||||
('email', 'sms'),]
|
||||
)
|
||||
def test_fetch_service_data_retention_by_notification_type(sample_service, notification_type, alternate):
|
||||
data_retention = create_service_data_retention(service=sample_service, notification_type=notification_type)
|
||||
|
||||
@@ -11,7 +11,7 @@ def test_get_provider_details_returns_all_providers(admin_request, notify_db_ses
|
||||
json_resp = admin_request.get('provider_details.get_providers')['provider_details']
|
||||
|
||||
assert len(json_resp) > 0
|
||||
assert {'ses', 'sns', 'dvla'} == {x['identifier'] for x in json_resp}
|
||||
assert {'ses', 'sns'} == {x['identifier'] for x in json_resp}
|
||||
|
||||
|
||||
def test_get_provider_details_by_id(client, notify_db_session):
|
||||
|
||||
@@ -69,10 +69,6 @@ def test_should_not_build_service_guest_list_from_invalid_contact(recipient_type
|
||||
([NOTIFICATION_FAILED, NOTIFICATION_CREATED], NOTIFICATION_STATUS_TYPES_FAILED + [NOTIFICATION_CREATED]),
|
||||
([NOTIFICATION_CREATED, NOTIFICATION_PENDING], [NOTIFICATION_CREATED, NOTIFICATION_PENDING]),
|
||||
([NOTIFICATION_CREATED, NOTIFICATION_TECHNICAL_FAILURE], [NOTIFICATION_CREATED, NOTIFICATION_TECHNICAL_FAILURE]),
|
||||
(
|
||||
[NOTIFICATION_FAILED, NOTIFICATION_SENDING],
|
||||
NOTIFICATION_STATUS_TYPES_FAILED + [NOTIFICATION_SENDING, NOTIFICATION_CREATED]
|
||||
),
|
||||
# checking we don't end up with duplicates
|
||||
(
|
||||
[NOTIFICATION_FAILED, NOTIFICATION_CREATED, NOTIFICATION_TECHNICAL_FAILURE],
|
||||
|
||||
Reference in New Issue
Block a user