From daff1c3f535c370d836b9e707f201069f6a6071e Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Wed, 27 Jan 2016 14:18:11 +0000 Subject: [PATCH] Add queue name to service table. Set queue name when creating the service --- app/models.py | 2 +- app/service/rest.py | 3 +++ .../0010_add_queue_name_to_service.py | 26 +++++++++++++++++++ tests/app/conftest.py | 4 ++- tests/app/service/test_rest.py | 1 + 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 migrations/versions/0010_add_queue_name_to_service.py diff --git a/app/models.py b/app/models.py index 578b8ce7c..40acb7b66 100644 --- a/app/models.py +++ b/app/models.py @@ -84,7 +84,7 @@ class Service(db.Model): secondary=user_to_service, backref=db.backref('user_to_service', lazy='dynamic')) restricted = db.Column(db.Boolean, index=False, unique=False, nullable=False) - + queue_name = db.Column(UUID(as_uuid=True)) class ApiKey(db.Model): __tablename__ = 'api_key' diff --git a/app/service/rest.py b/app/service/rest.py index c114b5555..81cfc8e4d 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -28,6 +28,9 @@ def create_service(): # I believe service is already added to the session but just needs a # db.session.commit try: + # add service name to here or in dao? + import uuid + service.queue_name = uuid.uuid4() save_model_service(service) except DAOException as e: return jsonify(result="error", message=str(e)), 400 diff --git a/migrations/versions/0010_add_queue_name_to_service.py b/migrations/versions/0010_add_queue_name_to_service.py new file mode 100644 index 000000000..774b4d3ba --- /dev/null +++ b/migrations/versions/0010_add_queue_name_to_service.py @@ -0,0 +1,26 @@ +"""empty message + +Revision ID: 0010_add_queue_name_to_service +Revises: 0009_unique_service_to_key_name +Create Date: 2016-01-27 13:53:34.717916 + +""" + +# revision identifiers, used by Alembic. + +revision = '0010_add_queue_name_to_service' +down_revision = '0009_unique_service_to_key_name' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.add_column('services', sa.Column('queue_name', postgresql.UUID(as_uuid=True), nullable=True)) + ### end Alembic commands ### + +def downgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column('services', 'queue_name') + ### end Alembic commands ### diff --git a/tests/app/conftest.py b/tests/app/conftest.py index d016b7daf..9241873ca 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -1,4 +1,6 @@ import pytest +from flask import jsonify + from app.models import (User, Service, Template, ApiKey, Job, VerifyCode) from app.dao.users_dao import (save_model_user, create_user_code, create_secret_code) from app.dao.services_dao import save_model_service @@ -156,7 +158,7 @@ def sample_admin_service_id(notify_db, notify_db_session): @pytest.fixture(scope='function') def mock_notify_client_send_sms(mocker): def _send(mobile_number, message): - pass + return jsonify('sms sent'), 200 mock_class = mocker.patch('app.notify_alpha_client.send_sms', side_effect=_send) return mock_class diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 6c2b2843e..a21b04107 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -93,6 +93,7 @@ def test_post_service(notify_api, notify_db, notify_db_session, sample_user, sam json_resp = json.loads(resp.get_data(as_text=True)) assert json_resp['data']['name'] == service.name assert json_resp['data']['limit'] == service.limit + assert service.queue_name is not None def test_post_service_multiple_users(notify_api, notify_db, notify_db_session, sample_user, sample_admin_service_id):