def test_update_existing_sms_sender_with_inbound_number_raises_exception_if_inbound_number_does_not_exist( notify_db_session): service = create_service() existing_sms_sender = ServiceSmsSender.query.filter_by( service_id=service.id).one() with pytest.raises(expected_exception=SQLAlchemyError): update_existing_sms_sender_with_inbound_number( service_sms_sender=existing_sms_sender, sms_sender='blah', inbound_number_id=uuid.uuid4())
def create_service_with_inbound_number( inbound_number='1234567', *args, **kwargs ): service = create_service(*args, **kwargs) sms_sender = ServiceSmsSender.query.filter_by(service_id=service.id).first() inbound = create_inbound_number(number=inbound_number, service_id=service.id) update_existing_sms_sender_with_inbound_number(service_sms_sender=sms_sender, sms_sender=inbound_number, inbound_number_id=inbound.id) return service
def add_service_sms_sender(service_id): dao_fetch_service_by_id(service_id) form = validate(request.get_json(), add_service_sms_sender_request) inbound_number_id = form.get('inbound_number_id', None) sms_sender = form.get('sms_sender') if inbound_number_id: updated_number = dao_allocate_number_for_service( service_id=service_id, inbound_number_id=inbound_number_id) # the sms_sender in the form is not set, use the inbound number sms_sender = updated_number.number existing_sms_sender = dao_get_sms_senders_by_service_id(service_id) # we don't want to create a new sms sender for the service if we are allocating an inbound number. if len(existing_sms_sender) == 1: update_existing_sms_sender = existing_sms_sender[0] new_sms_sender = update_existing_sms_sender_with_inbound_number( service_sms_sender=update_existing_sms_sender, sms_sender=sms_sender, inbound_number_id=inbound_number_id) return jsonify(new_sms_sender.serialize()), 201 new_sms_sender = dao_add_sms_sender_for_service( service_id=service_id, sms_sender=sms_sender, is_default=form['is_default'], inbound_number_id=inbound_number_id) return jsonify(new_sms_sender.serialize()), 201
def test_update_existing_sms_sender_with_inbound_number(notify_db_session): service = create_service() inbound_number = create_inbound_number(number='12345', service_id=service.id) existing_sms_sender = ServiceSmsSender.query.filter_by( service_id=service.id).one() sms_sender = update_existing_sms_sender_with_inbound_number( service_sms_sender=existing_sms_sender, sms_sender=inbound_number.number, inbound_number_id=inbound_number.id) assert sms_sender.inbound_number_id == inbound_number.id assert sms_sender.sms_sender == inbound_number.number assert sms_sender.is_default