Commit 4de65abb by Anthony Mangano

pylint fixes

parent 6296b0c9
...@@ -17,7 +17,7 @@ from student.tests.test_configuration_overrides import fake_get_value ...@@ -17,7 +17,7 @@ from student.tests.test_configuration_overrides import fake_get_value
from student.tests.factories import CourseEnrollmentFactory from student.tests.factories import CourseEnrollmentFactory
TEST_SUPPORT_EMAIL = "support@example.com" TEST_SUPPORT_EMAIL = "support@example.com"
TEST_ZENDESK_CUSTOM_FIELD_CONFIG = { "course_id": 1234, "enrollment_mode": 5678 } TEST_ZENDESK_CUSTOM_FIELD_CONFIG = {"course_id": 1234, "enrollment_mode": 5678}
TEST_REQUEST_HEADERS = { TEST_REQUEST_HEADERS = {
"HTTP_REFERER": "test_referer", "HTTP_REFERER": "test_referer",
"HTTP_USER_AGENT": "test_user_agent", "HTTP_USER_AGENT": "test_user_agent",
...@@ -25,7 +25,6 @@ TEST_REQUEST_HEADERS = { ...@@ -25,7 +25,6 @@ TEST_REQUEST_HEADERS = {
"SERVER_NAME": "test_server", "SERVER_NAME": "test_server",
} }
def fake_support_backend_values(name, default=None): # pylint: disable=unused-argument def fake_support_backend_values(name, default=None): # pylint: disable=unused-argument
""" """
Method for getting configuration override values for support email. Method for getting configuration override values for support email.
...@@ -36,7 +35,6 @@ def fake_support_backend_values(name, default=None): # pylint: disable=unused-a ...@@ -36,7 +35,6 @@ def fake_support_backend_values(name, default=None): # pylint: disable=unused-a
} }
return config_dict[name] return config_dict[name]
@ddt @ddt
@mock.patch.dict("django.conf.settings.FEATURES", {"ENABLE_FEEDBACK_SUBMISSION": True}) @mock.patch.dict("django.conf.settings.FEATURES", {"ENABLE_FEEDBACK_SUBMISSION": True})
@override_settings( @override_settings(
...@@ -71,7 +69,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -71,7 +69,6 @@ class SubmitFeedbackTest(TestCase):
# This does not contain issue_type nor course_id to ensure that they are optional # This does not contain issue_type nor course_id to ensure that they are optional
self._auth_fields = {"subject": "a subject", "details": "some details"} self._auth_fields = {"subject": "a subject", "details": "some details"}
def _build_and_run_request(self, user, fields): def _build_and_run_request(self, user, fields):
""" """
Generate a request and invoke the view, returning the response. Generate a request and invoke the view, returning the response.
...@@ -90,7 +87,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -90,7 +87,6 @@ class SubmitFeedbackTest(TestCase):
req.user = user req.user = user
return views.submit_feedback(req) return views.submit_feedback(req)
def _assert_bad_request(self, response, field, zendesk_mock_class, datadog_mock): def _assert_bad_request(self, response, field, zendesk_mock_class, datadog_mock):
""" """
Assert that the given `response` contains correct failure data. Assert that the given `response` contains correct failure data.
...@@ -107,7 +103,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -107,7 +103,6 @@ class SubmitFeedbackTest(TestCase):
self.assertFalse(zendesk_mock_class.return_value.mock_calls) self.assertFalse(zendesk_mock_class.return_value.mock_calls)
self.assertFalse(datadog_mock.mock_calls) self.assertFalse(datadog_mock.mock_calls)
def _test_bad_request_omit_field(self, user, fields, omit_field, zendesk_mock_class, datadog_mock): def _test_bad_request_omit_field(self, user, fields, omit_field, zendesk_mock_class, datadog_mock):
""" """
Invoke the view with a request missing a field and assert correctness. Invoke the view with a request missing a field and assert correctness.
...@@ -122,7 +117,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -122,7 +117,6 @@ class SubmitFeedbackTest(TestCase):
resp = self._build_and_run_request(user, filtered_fields) resp = self._build_and_run_request(user, filtered_fields)
self._assert_bad_request(resp, omit_field, zendesk_mock_class, datadog_mock) self._assert_bad_request(resp, omit_field, zendesk_mock_class, datadog_mock)
def _test_bad_request_empty_field(self, user, fields, empty_field, zendesk_mock_class, datadog_mock): def _test_bad_request_empty_field(self, user, fields, empty_field, zendesk_mock_class, datadog_mock):
""" """
Invoke the view with an empty field and assert correctness. Invoke the view with an empty field and assert correctness.
...@@ -138,7 +132,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -138,7 +132,6 @@ class SubmitFeedbackTest(TestCase):
resp = self._build_and_run_request(user, altered_fields) resp = self._build_and_run_request(user, altered_fields)
self._assert_bad_request(resp, empty_field, zendesk_mock_class, datadog_mock) self._assert_bad_request(resp, empty_field, zendesk_mock_class, datadog_mock)
def _test_success(self, user, fields): def _test_success(self, user, fields):
""" """
Generate a request, invoke the view, and assert success. Generate a request, invoke the view, and assert success.
...@@ -150,7 +143,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -150,7 +143,6 @@ class SubmitFeedbackTest(TestCase):
resp = self._build_and_run_request(user, fields) resp = self._build_and_run_request(user, fields)
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
def _build_zendesk_ticket(self, recipient, name, email, subject, details, tags, custom_fields=None): def _build_zendesk_ticket(self, recipient, name, email, subject, details, tags, custom_fields=None):
""" """
Build a Zendesk ticket that can be used in assertions to verify that the correct Build a Zendesk ticket that can be used in assertions to verify that the correct
...@@ -171,7 +163,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -171,7 +163,6 @@ class SubmitFeedbackTest(TestCase):
return ticket return ticket
def _build_zendesk_ticket_update(self, request_headers, username=None): def _build_zendesk_ticket_update(self, request_headers, username=None):
""" """
Build a Zendesk ticket update that can be used in assertions to verify that the correct Build a Zendesk ticket update that can be used in assertions to verify that the correct
...@@ -194,33 +185,28 @@ class SubmitFeedbackTest(TestCase): ...@@ -194,33 +185,28 @@ class SubmitFeedbackTest(TestCase):
body.append("{}: {}".format(text, request_headers[header])) body.append("{}: {}".format(text, request_headers[header]))
body = "Additional information:\n\n" + "\n".join(body) body = "Additional information:\n\n" + "\n".join(body)
return { "ticket": { "comment": { "public": False, "body": body } } } return {"ticket": {"comment": {"public": False, "body": body}}}
def _assert_zendesk_called(self, zendesk_mock, ticket_id, ticket, ticket_update): def _assert_zendesk_called(self, zendesk_mock, ticket_id, ticket, ticket_update):
"""Assert that Zendesk was called with the correct ticket and ticket_update.""" """Assert that Zendesk was called with the correct ticket and ticket_update."""
expected_zendesk_calls = [mock.call.create_ticket(ticket), mock.call.update_ticket(ticket_id, ticket_update)] expected_zendesk_calls = [mock.call.create_ticket(ticket), mock.call.update_ticket(ticket_id, ticket_update)]
self.assertEqual(zendesk_mock.mock_calls, expected_zendesk_calls) self.assertEqual(zendesk_mock.mock_calls, expected_zendesk_calls)
def _assert_datadog_called(self, datadog_mock, tags): def _assert_datadog_called(self, datadog_mock, tags):
"""Assert that datadog was called with the correct tags.""" """Assert that datadog was called with the correct tags."""
expected_datadog_calls = [mock.call.increment(views.DATADOG_FEEDBACK_METRIC, tags=tags)] expected_datadog_calls = [mock.call.increment(views.DATADOG_FEEDBACK_METRIC, tags=tags)]
self.assertEqual(datadog_mock.mock_calls, expected_datadog_calls) self.assertEqual(datadog_mock.mock_calls, expected_datadog_calls)
def test_bad_request_anon_user_no_name(self, zendesk_mock_class, datadog_mock): def test_bad_request_anon_user_no_name(self, zendesk_mock_class, datadog_mock):
"""Test a request from an anonymous user not specifying `name`.""" """Test a request from an anonymous user not specifying `name`."""
self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "name", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "name", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "name", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "name", zendesk_mock_class, datadog_mock)
def test_bad_request_anon_user_no_email(self, zendesk_mock_class, datadog_mock): def test_bad_request_anon_user_no_email(self, zendesk_mock_class, datadog_mock):
"""Test a request from an anonymous user not specifying `email`.""" """Test a request from an anonymous user not specifying `email`."""
self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "email", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "email", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "email", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "email", zendesk_mock_class, datadog_mock)
def test_bad_request_anon_user_invalid_email(self, zendesk_mock_class, datadog_mock): def test_bad_request_anon_user_invalid_email(self, zendesk_mock_class, datadog_mock):
"""Test a request from an anonymous user specifying an invalid `email`.""" """Test a request from an anonymous user specifying an invalid `email`."""
fields = self._anon_fields.copy() fields = self._anon_fields.copy()
...@@ -228,19 +214,16 @@ class SubmitFeedbackTest(TestCase): ...@@ -228,19 +214,16 @@ class SubmitFeedbackTest(TestCase):
resp = self._build_and_run_request(self._anon_user, fields) resp = self._build_and_run_request(self._anon_user, fields)
self._assert_bad_request(resp, "email", zendesk_mock_class, datadog_mock) self._assert_bad_request(resp, "email", zendesk_mock_class, datadog_mock)
def test_bad_request_anon_user_no_subject(self, zendesk_mock_class, datadog_mock): def test_bad_request_anon_user_no_subject(self, zendesk_mock_class, datadog_mock):
"""Test a request from an anonymous user not specifying `subject`.""" """Test a request from an anonymous user not specifying `subject`."""
self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "subject", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "subject", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "subject", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "subject", zendesk_mock_class, datadog_mock)
def test_bad_request_anon_user_no_details(self, zendesk_mock_class, datadog_mock): def test_bad_request_anon_user_no_details(self, zendesk_mock_class, datadog_mock):
"""Test a request from an anonymous user not specifying `details`.""" """Test a request from an anonymous user not specifying `details`."""
self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "details", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._anon_user, self._anon_fields, "details", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "details", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._anon_user, self._anon_fields, "details", zendesk_mock_class, datadog_mock)
def test_valid_request_anon_user(self, zendesk_mock_class, datadog_mock): def test_valid_request_anon_user(self, zendesk_mock_class, datadog_mock):
""" """
Test a valid request from an anonymous user. Test a valid request from an anonymous user.
...@@ -270,7 +253,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -270,7 +253,6 @@ class SubmitFeedbackTest(TestCase):
self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update) self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update)
self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(fields["issue_type"])]) self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(fields["issue_type"])])
@mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_get_value) @mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_get_value)
def test_valid_request_anon_user_configuration_override(self, zendesk_mock_class, datadog_mock): def test_valid_request_anon_user_configuration_override(self, zendesk_mock_class, datadog_mock):
""" """
...@@ -302,7 +284,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -302,7 +284,6 @@ class SubmitFeedbackTest(TestCase):
self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update) self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update)
self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(fields["issue_type"])]) self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(fields["issue_type"])])
@data("course-v1:testOrg+testCourseNumber+testCourseRun", "", None) @data("course-v1:testOrg+testCourseNumber+testCourseRun", "", None)
@override_settings(ZENDESK_CUSTOM_FIELDS=TEST_ZENDESK_CUSTOM_FIELD_CONFIG) @override_settings(ZENDESK_CUSTOM_FIELDS=TEST_ZENDESK_CUSTOM_FIELD_CONFIG)
def test_valid_request_anon_user_with_custom_fields(self, course_id, zendesk_mock_class, datadog_mock): def test_valid_request_anon_user_with_custom_fields(self, course_id, zendesk_mock_class, datadog_mock):
...@@ -348,23 +329,20 @@ class SubmitFeedbackTest(TestCase): ...@@ -348,23 +329,20 @@ class SubmitFeedbackTest(TestCase):
ticket_update = self._build_zendesk_ticket_update(TEST_REQUEST_HEADERS) ticket_update = self._build_zendesk_ticket_update(TEST_REQUEST_HEADERS)
self._test_success(self._anon_user, fields) self._test_success(user, fields)
self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update) self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update)
self._assert_datadog_called(datadog_mock, datadog_tags) self._assert_datadog_called(datadog_mock, datadog_tags)
def test_bad_request_auth_user_no_subject(self, zendesk_mock_class, datadog_mock): def test_bad_request_auth_user_no_subject(self, zendesk_mock_class, datadog_mock):
"""Test a request from an authenticated user not specifying `subject`.""" """Test a request from an authenticated user not specifying `subject`."""
self._test_bad_request_omit_field(self._auth_user, self._auth_fields, "subject", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._auth_user, self._auth_fields, "subject", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._auth_user, self._auth_fields, "subject", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._auth_user, self._auth_fields, "subject", zendesk_mock_class, datadog_mock)
def test_bad_request_auth_user_no_details(self, zendesk_mock_class, datadog_mock): def test_bad_request_auth_user_no_details(self, zendesk_mock_class, datadog_mock):
"""Test a request from an authenticated user not specifying `details`.""" """Test a request from an authenticated user not specifying `details`."""
self._test_bad_request_omit_field(self._auth_user, self._auth_fields, "details", zendesk_mock_class, datadog_mock) self._test_bad_request_omit_field(self._auth_user, self._auth_fields, "details", zendesk_mock_class, datadog_mock)
self._test_bad_request_empty_field(self._auth_user, self._auth_fields, "details", zendesk_mock_class, datadog_mock) self._test_bad_request_empty_field(self._auth_user, self._auth_fields, "details", zendesk_mock_class, datadog_mock)
def test_valid_request_auth_user(self, zendesk_mock_class, datadog_mock): def test_valid_request_auth_user(self, zendesk_mock_class, datadog_mock):
""" """
Test a valid request from an authenticated user. Test a valid request from an authenticated user.
...@@ -394,7 +372,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -394,7 +372,6 @@ class SubmitFeedbackTest(TestCase):
self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update) self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update)
self._assert_datadog_called(datadog_mock, []) self._assert_datadog_called(datadog_mock, [])
@data( @data(
("course-v1:testOrg+testCourseNumber+testCourseRun", True), ("course-v1:testOrg+testCourseNumber+testCourseRun", True),
("course-v1:testOrg+testCourseNumber+testCourseRun", False), ("course-v1:testOrg+testCourseNumber+testCourseRun", False),
...@@ -461,7 +438,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -461,7 +438,6 @@ class SubmitFeedbackTest(TestCase):
self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update) self._assert_zendesk_called(zendesk_mock_instance, ticket_id, ticket, ticket_update)
self._assert_datadog_called(datadog_mock, datadog_tags) self._assert_datadog_called(datadog_mock, datadog_tags)
def test_get_request(self, zendesk_mock_class, datadog_mock): def test_get_request(self, zendesk_mock_class, datadog_mock):
"""Test that a GET results in a 405 even with all required fields""" """Test that a GET results in a 405 even with all required fields"""
req = self._request_factory.get("/submit_feedback", data=self._anon_fields) req = self._request_factory.get("/submit_feedback", data=self._anon_fields)
...@@ -474,7 +450,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -474,7 +450,6 @@ class SubmitFeedbackTest(TestCase):
self.assertFalse(zendesk_mock_class.mock_calls) self.assertFalse(zendesk_mock_class.mock_calls)
self.assertFalse(datadog_mock.mock_calls) self.assertFalse(datadog_mock.mock_calls)
def test_zendesk_error_on_create(self, zendesk_mock_class, datadog_mock): def test_zendesk_error_on_create(self, zendesk_mock_class, datadog_mock):
""" """
Test Zendesk returning an error on ticket creation. Test Zendesk returning an error on ticket creation.
...@@ -489,7 +464,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -489,7 +464,6 @@ class SubmitFeedbackTest(TestCase):
self.assertFalse(resp.content) self.assertFalse(resp.content)
self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(self._anon_fields["issue_type"])]) self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(self._anon_fields["issue_type"])])
def test_zendesk_error_on_update(self, zendesk_mock_class, datadog_mock): def test_zendesk_error_on_update(self, zendesk_mock_class, datadog_mock):
""" """
Test for Zendesk returning an error on ticket update. Test for Zendesk returning an error on ticket update.
...@@ -505,7 +479,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -505,7 +479,6 @@ class SubmitFeedbackTest(TestCase):
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(self._anon_fields["issue_type"])]) self._assert_datadog_called(datadog_mock, ["issue_type:{}".format(self._anon_fields["issue_type"])])
@mock.patch.dict("django.conf.settings.FEATURES", {"ENABLE_FEEDBACK_SUBMISSION": False}) @mock.patch.dict("django.conf.settings.FEATURES", {"ENABLE_FEEDBACK_SUBMISSION": False})
def test_not_enabled(self, zendesk_mock_class, datadog_mock): def test_not_enabled(self, zendesk_mock_class, datadog_mock):
""" """
...@@ -516,7 +489,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -516,7 +489,6 @@ class SubmitFeedbackTest(TestCase):
with self.assertRaises(Http404): with self.assertRaises(Http404):
self._build_and_run_request(self._anon_user, self._anon_fields) self._build_and_run_request(self._anon_user, self._anon_fields)
def test_zendesk_not_configured(self, zendesk_mock_class, datadog_mock): def test_zendesk_not_configured(self, zendesk_mock_class, datadog_mock):
""" """
Test for Zendesk not fully configured in `settings`. Test for Zendesk not fully configured in `settings`.
...@@ -533,7 +505,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -533,7 +505,6 @@ class SubmitFeedbackTest(TestCase):
test_case("django.conf.settings.ZENDESK_USER") test_case("django.conf.settings.ZENDESK_USER")
test_case("django.conf.settings.ZENDESK_API_KEY") test_case("django.conf.settings.ZENDESK_API_KEY")
@mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_support_backend_values) @mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_support_backend_values)
def test_valid_request_over_email(self, zendesk_mock_class, datadog_mock): # pylint: disable=unused-argument def test_valid_request_over_email(self, zendesk_mock_class, datadog_mock): # pylint: disable=unused-argument
with mock.patch("util.views.send_mail") as patched_send_email: with mock.patch("util.views.send_mail") as patched_send_email:
...@@ -542,7 +513,6 @@ class SubmitFeedbackTest(TestCase): ...@@ -542,7 +513,6 @@ class SubmitFeedbackTest(TestCase):
self.assertIn(self._anon_fields["email"], str(patched_send_email.call_args)) self.assertIn(self._anon_fields["email"], str(patched_send_email.call_args))
self.assertEqual(resp.status_code, 200) self.assertEqual(resp.status_code, 200)
@mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_support_backend_values) @mock.patch("openedx.core.djangoapps.site_configuration.helpers.get_value", fake_support_backend_values)
def test_exception_request_over_email(self, zendesk_mock_class, datadog_mock): # pylint: disable=unused-argument def test_exception_request_over_email(self, zendesk_mock_class, datadog_mock): # pylint: disable=unused-argument
with mock.patch("util.views.send_mail", side_effect=SMTPException) as patched_send_email: with mock.patch("util.views.send_mail", side_effect=SMTPException) as patched_send_email:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment