diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index fc3881d25..4e8315c54 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -167,7 +167,7 @@ def dao_create_service(service, user, service_id=None, service_permissions=None) service.active = True service.research_mode = False service.crown = service.organisation_type == 'central' - service.letter_class = 'second' + service.postage = 'second' for permission in service_permissions: service_permission = ServicePermission(service_id=service.id, permission=permission) @@ -181,7 +181,8 @@ def dao_create_service(service, user, service_id=None, service_permissions=None) @transactional @version_class(Service) def dao_update_service(service): - service.letter_class = service.letter_class or 'second' + print("service.postage: ", service.postage) + service.postage = service.postage or 'second' db.session.add(service) diff --git a/app/models.py b/app/models.py index a518ca451..a160b0a33 100644 --- a/app/models.py +++ b/app/models.py @@ -353,7 +353,7 @@ class Service(db.Model, Versioned): crown = db.Column(db.Boolean, index=False, nullable=False, default=True) rate_limit = db.Column(db.Integer, index=False, nullable=False, default=3000) contact_link = db.Column(db.String(255), nullable=True, unique=False) - letter_class = db.Column(db.String(255), index=False, nullable=True) + postage = db.Column(db.String(255), index=False, nullable=True) organisation = db.relationship( 'Organisation', diff --git a/migrations/versions/0226_letter_class.py b/migrations/versions/0226_letter_class.py deleted file mode 100644 index eef9bcb5d..000000000 --- a/migrations/versions/0226_letter_class.py +++ /dev/null @@ -1,23 +0,0 @@ -""" - -Revision ID: 0226_letter_class -Revises: 0225_another_letter_org -Create Date: 2018-09-13 16:23:59.168877 - -""" -from alembic import op -import sqlalchemy as sa - - -revision = '0226_letter_class' -down_revision = '0225_another_letter_org' - - -def upgrade(): - op.add_column('services', sa.Column('letter_class', sa.String(length=255), nullable=True)) - op.add_column('services_history', sa.Column('letter_class', sa.String(length=255), nullable=True)) - - -def downgrade(): - op.drop_column('services_history', 'letter_class') - op.drop_column('services', 'letter_class') diff --git a/migrations/versions/0226_service_postage.py b/migrations/versions/0226_service_postage.py new file mode 100644 index 000000000..1715227d4 --- /dev/null +++ b/migrations/versions/0226_service_postage.py @@ -0,0 +1,23 @@ +""" + +Revision ID: 0226_service_postage +Revises: 0225_another_letter_org +Create Date: 2018-09-13 16:23:59.168877 + +""" +from alembic import op +import sqlalchemy as sa + + +revision = '0226_service_postage' +down_revision = '0225_another_letter_org' + + +def upgrade(): + op.add_column('services', sa.Column('postage', sa.String(length=255), nullable=True)) + op.add_column('services_history', sa.Column('postage', sa.String(length=255), nullable=True)) + + +def downgrade(): + op.drop_column('services_history', 'postage') + op.drop_column('services', 'postage') diff --git a/tests/app/conftest.py b/tests/app/conftest.py index fc27f1500..61d018bc3 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -1,16 +1,26 @@ -from datetime import datetime, timedelta import json import uuid - -from flask import current_app, url_for +from datetime import datetime, timedelta import pytest import pytz import requests_mock +from flask import current_app, url_for from sqlalchemy import asc from sqlalchemy.orm.session import make_transient from app import db +from app.clients.sms.firetext import FiretextClient +from app.dao.api_key_dao import save_model_api_key +from app.dao.invited_user_dao import save_invited_user +from app.dao.jobs_dao import dao_create_job +from app.dao.notifications_dao import dao_create_notification +from app.dao.organisation_dao import dao_create_organisation +from app.dao.provider_rates_dao import create_provider_rates +from app.dao.services_dao import (dao_create_service, dao_add_user_to_service) +from app.dao.templates_dao import dao_create_template +from app.dao.users_dao import create_secret_code, create_user_code +from app.history_meta import create_history from app.models import ( Service, Template, @@ -39,17 +49,6 @@ from app.models import ( SERVICE_PERMISSION_TYPES, ServiceEmailReplyTo ) -from app.dao.users_dao import (create_user_code, create_secret_code) -from app.dao.organisation_dao import dao_create_organisation -from app.dao.services_dao import (dao_create_service, dao_add_user_to_service) -from app.dao.templates_dao import dao_create_template -from app.dao.api_key_dao import save_model_api_key -from app.dao.jobs_dao import dao_create_job -from app.dao.notifications_dao import dao_create_notification -from app.dao.invited_user_dao import save_invited_user -from app.dao.provider_rates_dao import create_provider_rates -from app.clients.sms.firetext import FiretextClient -from app.history_meta import create_history from tests import create_authorization_header from tests.app.db import ( create_user, diff --git a/tests/app/dao/test_services_dao.py b/tests/app/dao/test_services_dao.py index d8ee6ff4c..041085813 100644 --- a/tests/app/dao/test_services_dao.py +++ b/tests/app/dao/test_services_dao.py @@ -1,10 +1,11 @@ -from datetime import datetime, timedelta import uuid +from datetime import datetime, timedelta import pytest -from sqlalchemy.orm.exc import FlushError, NoResultFound -from sqlalchemy.exc import IntegrityError from freezegun import freeze_time +from sqlalchemy.exc import IntegrityError +from sqlalchemy.orm.exc import FlushError, NoResultFound + from app import db from app.celery.scheduled_tasks import daily_stats_template_usage_by_month from app.dao.inbound_numbers_dao import ( @@ -12,6 +13,7 @@ from app.dao.inbound_numbers_dao import ( dao_get_available_inbound_numbers, dao_set_inbound_number_active_flag ) +from app.dao.service_permissions_dao import dao_add_service_permission, dao_remove_service_permission from app.dao.services_dao import ( dao_create_service, dao_add_user_to_service, @@ -33,8 +35,7 @@ from app.dao.services_dao import ( dao_fetch_monthly_historical_stats_by_template, dao_fetch_monthly_historical_usage_by_template_for_service ) -from app.dao.service_permissions_dao import dao_add_service_permission, dao_remove_service_permission -from app.dao.users_dao import save_model_user +from app.dao.users_dao import save_model_user, create_user_code from app.models import ( VerifyCode, ApiKey, @@ -59,7 +60,6 @@ from app.models import ( LETTER_TYPE, SERVICE_PERMISSION_TYPES ) - from tests.app.db import ( create_inbound_number, create_user, @@ -69,8 +69,6 @@ from tests.app.db import ( create_template, create_notification, create_api_key, - create_sample_inbound_numbers, - create_code, create_invited_user ) @@ -98,7 +96,7 @@ def test_create_service(notify_db_session): assert service_db.email_from == 'email_from' assert service_db.research_mode is False assert service_db.prefix_sms is True - assert service_db.letter_class == 'second' + assert service_db.postage == 'second' assert service.active is True assert user in service_db.users assert service_db.organisation_type == 'central' @@ -356,12 +354,12 @@ def test_create_service_creates_a_history_record_with_current_data(notify_db_ses assert service_from_db.name == service_history.name assert service_from_db.version == 1 assert service_from_db.version == service_history.version - assert service_from_db.letter_class == 'second' + assert service_from_db.postage == 'second' assert user.id == service_history.created_by_id assert service_from_db.created_by.id == service_history.created_by_id assert service_from_db.dvla_organisation_id == DVLA_ORG_HM_GOVERNMENT assert service_history.dvla_organisation_id == DVLA_ORG_HM_GOVERNMENT - assert service_history.letter_class == 'second' + assert service_history.postage == 'second' def test_update_service_creates_a_history_record_with_current_data(notify_db_session): @@ -439,7 +437,7 @@ def test_update_service_permission_creates_a_history_record_with_current_data(no assert Service.get_history_model().query.filter_by(name='service_name').all()[2].version == 3 -def test_update_service_set_letter_class_to_default(notify_db_session): +def test_update_service_set_postage_to_default(notify_db_session): user = create_user() assert Service.query.count() == 0 assert Service.get_history_model().query.count() == 0 @@ -451,12 +449,12 @@ def test_update_service_set_letter_class_to_default(notify_db_session): dao_create_service(service, user) service_from_db = Service.query.first() - service_from_db.letter_class = None + service_from_db.postage = None dao_update_service(service_from_db) service_with_update = Service.query.first() - assert service_with_update.letter_class == 'second' + assert service_with_update.postage == 'second' service_history_with_update = Service.get_history_model().query.filter_by(version=2).one() - assert service_history_with_update.letter_class == 'second' + assert service_history_with_update.postage == 'second' def test_create_service_and_history_is_transactional(notify_db_session): @@ -480,8 +478,8 @@ def test_create_service_and_history_is_transactional(notify_db_session): def test_delete_service_and_associated_objects(notify_db_session): user = create_user() service = create_service(user=user, service_permissions=None) - create_code(code_type='email', usr=user) - create_code(code_type='sms', usr=user) + create_user_code(user=user, code='somecode', code_type='email') + create_user_code(user=user, code='somecode', code_type='sms') template = create_template(service=service) api_key = create_api_key(service=service) create_notification(template=template, api_key=api_key) @@ -936,8 +934,10 @@ def test_dao_fetch_service_by_inbound_number_with_inactive_number_returns_empty( assert service is None -def test_dao_allocating_inbound_numer_shows_on_service(notify_db_session): - create_sample_inbound_numbers() +def test_dao_allocating_inbound_number_shows_on_service(notify_db_session): + create_service_with_inbound_number() + create_inbound_number(number='07700900003') + inbound_numbers = dao_get_available_inbound_numbers() service = create_service(service_name='test service') diff --git a/tests/app/db.py b/tests/app/db.py index d829134af..bb5eaedce 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -1,14 +1,25 @@ -from datetime import datetime, date import uuid +from datetime import datetime, date from app import db +from app.dao.email_branding_dao import dao_create_email_branding +from app.dao.inbound_sms_dao import dao_create_inbound_sms +from app.dao.invited_org_user_dao import save_invited_org_user from app.dao.invited_user_dao import save_invited_user from app.dao.jobs_dao import dao_create_job +from app.dao.notifications_dao import ( + dao_create_notification, + dao_created_scheduled_notification +) +from app.dao.organisation_dao import dao_create_organisation +from app.dao.service_callback_api_dao import save_service_callback_api from app.dao.service_data_retention_dao import insert_service_data_retention from app.dao.service_inbound_api_dao import save_service_inbound_api -from app.dao.service_callback_api_dao import save_service_callback_api +from app.dao.service_permissions_dao import dao_add_service_permission from app.dao.service_sms_sender_dao import update_existing_sms_sender_with_inbound_number, dao_update_service_sms_sender -from app.dao.invited_org_user_dao import save_invited_org_user +from app.dao.services_dao import dao_create_service +from app.dao.templates_dao import dao_create_template +from app.dao.users_dao import save_model_user from app.models import ( ApiKey, DailySortedLetter, @@ -39,17 +50,6 @@ from app.models import ( Complaint, InvitedUser ) -from app.dao.users_dao import save_model_user, create_secret_code, create_user_code -from app.dao.notifications_dao import ( - dao_create_notification, - dao_created_scheduled_notification -) -from app.dao.templates_dao import dao_create_template -from app.dao.services_dao import dao_create_service -from app.dao.service_permissions_dao import dao_add_service_permission -from app.dao.inbound_sms_dao import dao_create_inbound_sms -from app.dao.email_branding_dao import dao_create_email_branding -from app.dao.organisation_dao import dao_create_organisation def create_user(mobile_number="+447700900986", email="notify@digital.cabinet-office.gov.uk", state='active', id_=None): @@ -664,26 +664,6 @@ def create_service_data_retention( return data_retention -def create_sample_inbound_numbers(service=None): - if not service: - service = create_service(service_name='sample service 2') - service_2 = create_service(service_name='service 2 for inbound') - inbound_numbers = list() - inbound_numbers.append(create_inbound_number(number='1', provider='mmg')) - inbound_numbers.append(create_inbound_number(number='2', provider='mmg', active=False, service_id=service.id)) - inbound_numbers.append(create_inbound_number(number='3', provider='firetext', - service_id=service_2.id)) - return inbound_numbers - - -def create_code(code_type, usr=None, code=None): - if code is None: - code = create_secret_code() - if usr is None: - usr = create_user() - return create_user_code(usr, code, code_type), code - - def create_invited_user(service=None, to_email_address=None): diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 2640bf478..ed2b273d0 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -138,7 +138,7 @@ def test_get_service_by_id(admin_request, sample_service): assert 'branding' not in json_resp['data'] assert json_resp['data']['dvla_organisation'] == '001' assert json_resp['data']['prefix_sms'] is True - assert json_resp['data']['letter_class'] == 'second' + assert json_resp['data']['postage'] == 'second' @pytest.mark.parametrize('detailed', [True, False])