mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 08:16:51 -04:00
Use Zendesk form for general enquiries
This commit is contained in:
@@ -4,6 +4,9 @@ import pytz
|
|||||||
from flask import redirect, render_template, request, session, url_for
|
from flask import redirect, render_template, request, session, url_for
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from govuk_bank_holidays.bank_holidays import BankHolidays
|
from govuk_bank_holidays.bank_holidays import BankHolidays
|
||||||
|
from notifications_utils.clients.zendesk.zendesk_client import (
|
||||||
|
NotifySupportTicket,
|
||||||
|
)
|
||||||
|
|
||||||
from app import convert_to_boolean, current_service
|
from app import convert_to_boolean, current_service
|
||||||
from app.extensions import zendesk_client
|
from app.extensions import zendesk_client
|
||||||
@@ -124,14 +127,19 @@ def feedback(ticket_type):
|
|||||||
service_string,
|
service_string,
|
||||||
)
|
)
|
||||||
|
|
||||||
zendesk_client.create_ticket(
|
ticket = NotifySupportTicket(
|
||||||
subject='Notify feedback',
|
subject='Notify feedback',
|
||||||
message=feedback_msg,
|
message=feedback_msg,
|
||||||
ticket_type=ticket_type,
|
ticket_type=ticket_type,
|
||||||
p1=out_of_hours_emergency,
|
p1=out_of_hours_emergency,
|
||||||
|
user_name=user_name,
|
||||||
user_email=user_email,
|
user_email=user_email,
|
||||||
user_name=user_name
|
org_id=current_service.organisation_id if current_service else None,
|
||||||
|
org_type=current_service.organisation_type if current_service else None,
|
||||||
|
service_id=current_service.id if current_service else None,
|
||||||
)
|
)
|
||||||
|
zendesk_client.send_ticket_to_zendesk(ticket)
|
||||||
|
|
||||||
return redirect(url_for(
|
return redirect(url_for(
|
||||||
'.thanks',
|
'.thanks',
|
||||||
out_of_hours_emergency=out_of_hours_emergency,
|
out_of_hours_emergency=out_of_hours_emergency,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from app.models.feedback import (
|
|||||||
PROBLEM_TICKET_TYPE,
|
PROBLEM_TICKET_TYPE,
|
||||||
QUESTION_TICKET_TYPE,
|
QUESTION_TICKET_TYPE,
|
||||||
)
|
)
|
||||||
from tests.conftest import normalize_spaces
|
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
|
||||||
|
|
||||||
|
|
||||||
def no_redirect():
|
def no_redirect():
|
||||||
@@ -138,9 +138,16 @@ def test_get_feedback_page(client, ticket_type, expected_status_code):
|
|||||||
@freeze_time('2016-12-12 12:00:00.000000')
|
@freeze_time('2016-12-12 12:00:00.000000')
|
||||||
@pytest.mark.parametrize('ticket_type', [PROBLEM_TICKET_TYPE, QUESTION_TICKET_TYPE])
|
@pytest.mark.parametrize('ticket_type', [PROBLEM_TICKET_TYPE, QUESTION_TICKET_TYPE])
|
||||||
def test_passed_non_logged_in_user_details_through_flow(client, mocker, ticket_type):
|
def test_passed_non_logged_in_user_details_through_flow(client, mocker, ticket_type):
|
||||||
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
|
mock_ticket = mocker.patch(
|
||||||
|
'app.main.views.feedback.NotifySupportTicket',
|
||||||
|
return_value='feedback_ticket',
|
||||||
|
)
|
||||||
|
mock_send_ticket_to_zendesk = mocker.patch(
|
||||||
|
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
|
||||||
|
autospec=True,
|
||||||
|
)
|
||||||
|
|
||||||
data = {'feedback': 'blah', 'name': 'Steve Irwin', 'email_address': 'rip@gmail.com'}
|
data = {'feedback': 'blah', 'name': 'Anne Example', 'email_address': 'anne@example.com'}
|
||||||
|
|
||||||
resp = client.post(
|
resp = client.post(
|
||||||
url_for('main.feedback', ticket_type=ticket_type),
|
url_for('main.feedback', ticket_type=ticket_type),
|
||||||
@@ -154,14 +161,18 @@ def test_passed_non_logged_in_user_details_through_flow(client, mocker, ticket_t
|
|||||||
email_address_provided=True,
|
email_address_provided=True,
|
||||||
_external=True,
|
_external=True,
|
||||||
)
|
)
|
||||||
mock_post.assert_called_with(
|
mock_ticket.assert_called_once_with(
|
||||||
subject='Notify feedback',
|
subject='Notify feedback',
|
||||||
message='blah\n',
|
message='blah\n',
|
||||||
user_email='rip@gmail.com',
|
|
||||||
user_name='Steve Irwin',
|
|
||||||
ticket_type=ticket_type,
|
ticket_type=ticket_type,
|
||||||
p1=ANY
|
p1=False,
|
||||||
|
user_name='Anne Example',
|
||||||
|
user_email='anne@example.com',
|
||||||
|
org_id=None,
|
||||||
|
org_type=None,
|
||||||
|
service_id=None
|
||||||
)
|
)
|
||||||
|
mock_send_ticket_to_zendesk.assert_called_once_with('feedback_ticket')
|
||||||
|
|
||||||
|
|
||||||
@freeze_time("2016-12-12 12:00:00.000000")
|
@freeze_time("2016-12-12 12:00:00.000000")
|
||||||
@@ -177,7 +188,14 @@ def test_passes_user_details_through_flow(
|
|||||||
ticket_type,
|
ticket_type,
|
||||||
data
|
data
|
||||||
):
|
):
|
||||||
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
|
mock_ticket = mocker.patch(
|
||||||
|
'app.main.views.feedback.NotifySupportTicket',
|
||||||
|
return_value='feedback_ticket',
|
||||||
|
)
|
||||||
|
mock_send_ticket_to_zendesk = mocker.patch(
|
||||||
|
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
|
||||||
|
autospec=True,
|
||||||
|
)
|
||||||
|
|
||||||
client_request.post(
|
client_request.post(
|
||||||
'main.feedback',
|
'main.feedback',
|
||||||
@@ -191,25 +209,29 @@ def test_passes_user_details_through_flow(
|
|||||||
_external=True,
|
_external=True,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
mock_ticket.assert_called_once_with(
|
||||||
mock_post.assert_called_with(
|
|
||||||
subject='Notify feedback',
|
subject='Notify feedback',
|
||||||
message=ANY,
|
message=ANY,
|
||||||
user_email='test@user.gov.uk',
|
|
||||||
user_name='Test User',
|
|
||||||
ticket_type=ticket_type,
|
ticket_type=ticket_type,
|
||||||
p1=ANY
|
p1=False,
|
||||||
|
user_name='Test User',
|
||||||
|
user_email='test@user.gov.uk',
|
||||||
|
org_id=None,
|
||||||
|
org_type='central',
|
||||||
|
service_id=SERVICE_ONE_ID
|
||||||
)
|
)
|
||||||
assert mock_post.call_args[1]['message'] == '\n'.join([
|
|
||||||
|
assert mock_ticket.call_args[1]['message'] == '\n'.join([
|
||||||
'blah',
|
'blah',
|
||||||
'Service: "service one"',
|
'Service: "service one"',
|
||||||
url_for(
|
url_for(
|
||||||
'main.service_dashboard',
|
'main.service_dashboard',
|
||||||
service_id='596364a0-858e-42c8-9062-a8fe822260eb',
|
service_id=SERVICE_ONE_ID,
|
||||||
_external=True
|
_external=True
|
||||||
),
|
),
|
||||||
''
|
''
|
||||||
])
|
])
|
||||||
|
mock_send_ticket_to_zendesk.assert_called_once_with('feedback_ticket')
|
||||||
|
|
||||||
|
|
||||||
@freeze_time('2016-12-12 12:00:00.000000')
|
@freeze_time('2016-12-12 12:00:00.000000')
|
||||||
@@ -289,7 +311,13 @@ def test_urgency(
|
|||||||
is_out_of_hours_emergency,
|
is_out_of_hours_emergency,
|
||||||
):
|
):
|
||||||
mocker.patch('app.main.views.feedback.in_business_hours', return_value=is_in_business_hours)
|
mocker.patch('app.main.views.feedback.in_business_hours', return_value=is_in_business_hours)
|
||||||
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
|
|
||||||
|
mock_ticket = mocker.patch('app.main.views.feedback.NotifySupportTicket')
|
||||||
|
mocker.patch(
|
||||||
|
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
|
||||||
|
autospec=True,
|
||||||
|
)
|
||||||
|
|
||||||
client_request.post(
|
client_request.post(
|
||||||
'main.feedback',
|
'main.feedback',
|
||||||
ticket_type=ticket_type,
|
ticket_type=ticket_type,
|
||||||
@@ -303,7 +331,7 @@ def test_urgency(
|
|||||||
_external=True,
|
_external=True,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
assert mock_post.call_args[1]['p1'] == is_out_of_hours_emergency
|
assert mock_ticket.call_args[1]['p1'] == is_out_of_hours_emergency
|
||||||
|
|
||||||
|
|
||||||
ids, params = zip(*[
|
ids, params = zip(*[
|
||||||
|
|||||||
Reference in New Issue
Block a user