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