From bd6dd986beac86130530e7b9d1e19b20b728868f Mon Sep 17 00:00:00 2001 From: Matt Hughes <mhughes@edx.org> Date: Tue, 26 May 2020 12:42:03 -0400 Subject: [PATCH] Revert "Optimizing notify_credentials management command" This reverts commit 3e987cfe7661a0c62e85f73dd9400249287c7740. --- .../management/commands/notify_credentials.py | 22 ++++--------------- .../commands/tests/test_notify_credentials.py | 5 ++++- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py b/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py index 151e472c0ba..cd0bd9e9d3b 100644 --- a/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py +++ b/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py @@ -212,7 +212,6 @@ class Command(BaseCommand): def send_notifications(self, certs, grades, site_config=None, delay=0, page_size=0, verbose=False): """ Run actual handler commands for the provided certs and grades. """ - course_cert_info = {} # First, do certs for i, cert in paged_query(certs, delay, page_size): if site_config and not site_config.has_org(cert.course_id.org): @@ -232,14 +231,8 @@ class Command(BaseCommand): 'status': cert.status, 'verbose': verbose, } - - data = { - 'mode': cert.mode, - 'status': cert.status - } - - course_cert_info[(cert.user.id, str(cert.course_id))] = data handle_course_cert_changed(**signal_args) + handle_cert_change(**signal_args) # Then do grades for i, grade in paged_query(grades, delay, page_size): @@ -253,21 +246,14 @@ class Command(BaseCommand): ) user = User.objects.get(id=grade.user_id) - - # Grab mode/status from cert call - if course_cert_info: - key = (user.id, str(grade.course_id)) - mode = course_cert_info[key].get('mode', None) - status = course_cert_info[key].get('status', None) - send_grade_if_interesting( user, grade.course_id, - mode, - status, + None, + None, grade.letter_grade, grade.percent_grade, - verbose=verbose, + verbose=verbose ) def get_course_keys(self, courses=None): diff --git a/openedx/core/djangoapps/credentials/management/commands/tests/test_notify_credentials.py b/openedx/core/djangoapps/credentials/management/commands/tests/test_notify_credentials.py index 45c1a90483e..63ed6e71012 100644 --- a/openedx/core/djangoapps/credentials/management/commands/tests/test_notify_credentials.py +++ b/openedx/core/djangoapps/credentials/management/commands/tests/test_notify_credentials.py @@ -127,6 +127,7 @@ class TestNotifyCredentials(TestCase): call_command(Command(), '--start-date', '2017-02-01') self.assertEqual(mock_grade_cert_change.call_count, 2) self.assertEqual(mock_grade_interesting.call_count, 2) + self.assertEqual(mock_program_changed.call_count, 2) @mock.patch(COMMAND_MODULE + '.time') def test_delay(self, mock_time): @@ -153,13 +154,15 @@ class TestNotifyCredentials(TestCase): self.assertEqual(len(connection.queries), baseline + 2) # one extra page query each for certs & grades @mock.patch(COMMAND_MODULE + '.send_grade_if_interesting') - def test_site(self, mock_grade_interesting): + @mock.patch(COMMAND_MODULE + '.handle_cert_change') + def test_site(self, mock_grade_interesting, mock_cert_change): site_config = SiteConfigurationFactory.create( site_values={'course_org_filter': ['testX']} ) call_command(Command(), '--site', site_config.site.domain, '--start-date', '2017-01-01') self.assertEqual(mock_grade_interesting.call_count, 1) + self.assertEqual(mock_cert_change.call_count, 1) @mock.patch(COMMAND_MODULE + '.Command.send_notifications') def test_args_from_database(self, mock_send): -- GitLab