mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 11:23:48 -05: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_login import current_user
|
||||
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.extensions import zendesk_client
|
||||
@@ -124,14 +127,19 @@ def feedback(ticket_type):
|
||||
service_string,
|
||||
)
|
||||
|
||||
zendesk_client.create_ticket(
|
||||
ticket = NotifySupportTicket(
|
||||
subject='Notify feedback',
|
||||
message=feedback_msg,
|
||||
ticket_type=ticket_type,
|
||||
p1=out_of_hours_emergency,
|
||||
user_name=user_name,
|
||||
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(
|
||||
'.thanks',
|
||||
out_of_hours_emergency=out_of_hours_emergency,
|
||||
|
||||
@@ -12,7 +12,7 @@ from app.models.feedback import (
|
||||
PROBLEM_TICKET_TYPE,
|
||||
QUESTION_TICKET_TYPE,
|
||||
)
|
||||
from tests.conftest import normalize_spaces
|
||||
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
|
||||
|
||||
|
||||
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')
|
||||
@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):
|
||||
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(
|
||||
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,
|
||||
_external=True,
|
||||
)
|
||||
mock_post.assert_called_with(
|
||||
mock_ticket.assert_called_once_with(
|
||||
subject='Notify feedback',
|
||||
message='blah\n',
|
||||
user_email='rip@gmail.com',
|
||||
user_name='Steve Irwin',
|
||||
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")
|
||||
@@ -177,7 +188,14 @@ def test_passes_user_details_through_flow(
|
||||
ticket_type,
|
||||
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(
|
||||
'main.feedback',
|
||||
@@ -191,25 +209,29 @@ def test_passes_user_details_through_flow(
|
||||
_external=True,
|
||||
),
|
||||
)
|
||||
|
||||
mock_post.assert_called_with(
|
||||
mock_ticket.assert_called_once_with(
|
||||
subject='Notify feedback',
|
||||
message=ANY,
|
||||
user_email='test@user.gov.uk',
|
||||
user_name='Test User',
|
||||
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',
|
||||
'Service: "service one"',
|
||||
url_for(
|
||||
'main.service_dashboard',
|
||||
service_id='596364a0-858e-42c8-9062-a8fe822260eb',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_external=True
|
||||
),
|
||||
''
|
||||
])
|
||||
mock_send_ticket_to_zendesk.assert_called_once_with('feedback_ticket')
|
||||
|
||||
|
||||
@freeze_time('2016-12-12 12:00:00.000000')
|
||||
@@ -289,7 +311,13 @@ def test_urgency(
|
||||
is_out_of_hours_emergency,
|
||||
):
|
||||
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(
|
||||
'main.feedback',
|
||||
ticket_type=ticket_type,
|
||||
@@ -303,7 +331,7 @@ def test_urgency(
|
||||
_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(*[
|
||||
|
||||
Reference in New Issue
Block a user