def service_add_sms_sender(service_id): form = ServiceSmsSenderForm() first_sms_sender = current_service.count_sms_senders == 0 if form.validate_on_submit(): service_api_client.add_sms_sender( current_service.id, sms_sender=form.sms_sender.data.replace('\r', '') or None, is_default=first_sms_sender if first_sms_sender else form.is_default.data) return redirect(url_for('.service_sms_senders', service_id=service_id)) return render_template('views/service-settings/sms-sender/add.html', form=form, first_sms_sender=first_sms_sender)
def service_edit_sms_sender(service_id, sms_sender_id): sms_sender = current_service.get_sms_sender(sms_sender_id) is_inbound_number = sms_sender['inbound_number_id'] if is_inbound_number: form = ServiceEditInboundNumberForm( is_default=sms_sender['is_default']) else: form = ServiceSmsSenderForm(**sms_sender) if form.validate_on_submit(): service_api_client.update_sms_sender( current_service.id, sms_sender_id=sms_sender_id, sms_sender=sms_sender['sms_sender'] if is_inbound_number else form.sms_sender.data.replace('\r', ''), is_default=True if sms_sender['is_default'] else form.is_default.data) return redirect(url_for('.service_sms_senders', service_id=service_id)) form.is_default.data = sms_sender['is_default'] if (request.endpoint == "main.service_confirm_delete_sms_sender"): flash("Are you sure you want to delete this text message sender?", 'delete') return render_template('views/service-settings/sms-sender/edit.html', form=form, sms_sender=sms_sender, inbound_number=is_inbound_number, sms_sender_id=sms_sender_id)
def service_add_sms_sender(service_id): form = ServiceSmsSenderForm() blocklist_values = service_api_client.get_blocklist_for_service( service_id)['blocklist'] blocklist_validator = next(v for v in form.sms_sender.validators if type(v) == SenderBlocklistValidator) blocklist_validator.values = blocklist_values first_sms_sender = current_service.count_sms_senders == 0 if form.validate_on_submit(): service_api_client.add_sms_sender( current_service.id, sms_sender=form.sms_sender.data.replace('\r', '') or None, is_default=first_sms_sender if first_sms_sender else form.is_default.data) return redirect(url_for('.service_sms_senders', service_id=service_id)) return render_template('views/service-settings/sms-sender/add.html', form=form, first_sms_sender=first_sms_sender)
def test_sms_sender_form_validation( client, mock_get_user_by_email, ): form = ServiceSmsSenderForm() form.sms_sender.data = 'elevenchars' form.validate() assert not form.errors form.sms_sender.data = '' form.validate() assert "Can’t be empty" == form.errors['sms_sender'][0] form.sms_sender.data = 'morethanelevenchars' form.validate() assert "Enter 11 characters or fewer" == form.errors['sms_sender'][0] form.sms_sender.data = '###########' form.validate() assert 'Use letters and numbers only' == form.errors['sms_sender'][0]
def service_edit_sms_sender(service_id, sms_sender_id): if request.form and 'delete' in request.form: service_api_client.delete_sms_sender( service_id=service_id, sms_sender_id=sms_sender_id, ) flash(f'Text message sender {sms_sender_id} deleted', 'default_with_tick') return redirect(url_for('.service_sms_senders', service_id=service_id)) sms_sender = service_api_client.get_sms_sender(service_id, sms_sender_id) is_inbound_number = sms_sender['inbound_number_id'] if is_inbound_number: form = ServiceEditInboundNumberForm( is_default=sms_sender['is_default']) else: form = ServiceSmsSenderForm(**sms_sender) if form.validate_on_submit(): service_api_client.update_sms_sender( current_service['id'], sms_sender_id=sms_sender_id, sms_sender=sms_sender['sms_sender'] if is_inbound_number else form.sms_sender.data.replace('\r', ''), is_default=True if sms_sender['is_default'] else form.is_default.data) return redirect(url_for('.service_sms_senders', service_id=service_id)) form.is_default.data = sms_sender['is_default'] if 'delete' in request.args: flash('Are you sure you want to delete this text message sender?', 'delete') return render_template('views/service-settings/sms-sender/edit.html', form=form, sms_sender=sms_sender, inbound_number=is_inbound_number, sms_sender_id=sms_sender_id)
def service_edit_sms_sender(service_id, sms_sender_id): sms_sender = service_api_client.get_sms_sender(service_id, sms_sender_id) is_inbound_number = sms_sender['inbound_number_id'] if is_inbound_number: form = ServiceEditInboundNumberForm(is_default=sms_sender['is_default']) else: form = ServiceSmsSenderForm(**sms_sender) if form.validate_on_submit(): service_api_client.update_sms_sender( current_service['id'], sms_sender_id=sms_sender_id, sms_sender=sms_sender['sms_sender'] if is_inbound_number else form.sms_sender.data.replace('\r', ''), is_default=True if sms_sender['is_default'] else form.is_default.data ) return redirect(url_for('.service_sms_senders', service_id=service_id)) form.is_default.data = sms_sender['is_default'] return render_template( 'views/service-settings/sms-sender/edit.html', form=form, sms_sender=sms_sender, inbound_number=is_inbound_number )
def test_sms_sender_form_validation( client, mock_get_user_by_email, ): form = ServiceSmsSenderForm() form.sms_sender.data = "elevenchars" form.validate() assert not form.errors form.sms_sender.data = "" form.validate() assert "This cannot be empty" == form.errors["sms_sender"][0] form.sms_sender.data = "morethanelevenchars" form.validate() assert "Enter 11 characters or fewer" == form.errors["sms_sender"][0] form.sms_sender.data = "###########" form.validate() assert "Use letters and numbers only" == form.errors["sms_sender"][0] form.sms_sender.data = "333" form.validate() assert "Enter 4 characters or more" == form.errors["sms_sender"][0] form.sms_sender.data = "4444" form.validate() assert not form.errors form.sms_sender.data = "00111222333" form.validate() assert "Can't start with 00" == form.errors["sms_sender"][0]
def test_sms_sender_form_validation( client, mock_get_user_by_email, ): form = ServiceSmsSenderForm() form.sms_sender.data = 'elevenchars' form.validate() assert not form.errors form.sms_sender.data = '' form.validate() assert "This cannot be empty" == form.errors['sms_sender'][0] form.sms_sender.data = 'morethanelevenchars' form.validate() assert "Enter 11 characters or fewer" == form.errors['sms_sender'][0] form.sms_sender.data = '###########' form.validate() assert 'Use letters and numbers only' == form.errors['sms_sender'][0] form.sms_sender.data = '333' form.validate() assert 'Enter 4 characters or more' == form.errors['sms_sender'][0] form.sms_sender.data = '4444' form.validate() assert not form.errors form.sms_sender.data = '00111222333' form.validate() assert "Can't start with 00" == form.errors['sms_sender'][0]
def test_sms_sender_form_validation( client, mock_get_user_by_email, ): form = ServiceSmsSenderForm() form.sms_sender.data = 'elevenchars' form.validate() assert not form.errors form.sms_sender.data = '' form.validate() assert "Cannot be empty" == form.errors['sms_sender'][0] form.sms_sender.data = 'morethanelevenchars' form.validate() assert "Enter 11 characters or fewer" == form.errors['sms_sender'][0] form.sms_sender.data = '###########' form.validate() assert 'Use letters and numbers only' == form.errors['sms_sender'][0] # Underscores are allowed form.sms_sender.data = 'UK_GOV' form.validate() assert not form.errors # Full stops are allowed form.sms_sender.data = 'UK.GOV' form.validate() assert not form.errors form.sms_sender.data = '22' form.validate() assert 'Enter 3 characters or more' == form.errors['sms_sender'][0] form.sms_sender.data = '333' form.validate() assert not form.errors form.sms_sender.data = '00111222333' form.validate() assert "Cannot start with 00" == form.errors['sms_sender'][0]