Merge pull request #2137 from alphagov/save-same-service-name

Don’t error if a user keeps same service name
This commit is contained in:
Chris Hill-Scott
2018-07-05 11:01:48 +01:00
committed by GitHub
2 changed files with 29 additions and 2 deletions

View File

@@ -113,19 +113,26 @@ def service_name_change(service_id):
form = RenameServiceForm() form = RenameServiceForm()
if request.method == 'GET': if request.method == 'GET':
form.name.data = current_service.get('name') form.name.data = current_service['name']
if form.validate_on_submit(): if form.validate_on_submit():
if form.name.data == current_service['name']:
return redirect(url_for('.service_settings', service_id=service_id))
unique_name = service_api_client.is_service_name_unique(service_id, form.name.data, email_safe(form.name.data)) unique_name = service_api_client.is_service_name_unique(service_id, form.name.data, email_safe(form.name.data))
if not unique_name: if not unique_name:
form.name.errors.append("This service name is already in use") form.name.errors.append("This service name is already in use")
return render_template('views/service-settings/name.html', form=form) return render_template('views/service-settings/name.html', form=form)
session['service_name_change'] = form.name.data session['service_name_change'] = form.name.data
return redirect(url_for('.service_name_change_confirm', service_id=service_id)) return redirect(url_for('.service_name_change_confirm', service_id=service_id))
return render_template( return render_template(
'views/service-settings/name.html', 'views/service-settings/name.html',
form=form) form=form,
)
@main.route("/services/<service_id>/service-settings/name/confirm", methods=['GET', 'POST']) @main.route("/services/<service_id>/service-settings/name/confirm", methods=['GET', 'POST'])

View File

@@ -291,6 +291,26 @@ def test_should_redirect_after_change_service_name(
assert mock_service_name_is_unique.called assert mock_service_name_is_unique.called
def test_should_not_hit_api_if_service_name_hasnt_changed(
client_request,
mock_update_service,
mock_service_name_is_unique,
):
client_request.post(
'main.service_name_change',
service_id=SERVICE_ONE_ID,
_data={'name': 'service one'},
_expected_status=302,
_expected_redirect=url_for(
'main.service_settings',
service_id=SERVICE_ONE_ID,
_external=True,
),
)
assert not mock_service_name_is_unique.called
assert not mock_update_service.called
@pytest.mark.parametrize('user, expected_text, expected_link', [ @pytest.mark.parametrize('user, expected_text, expected_link', [
( (
active_user_with_permissions, active_user_with_permissions,