From 0c610749c90bd49663e9dfe934264a0227641ae3 Mon Sep 17 00:00:00 2001
From: Uzair Rasheed <uzairrasheed@UzairRasheed-MBP-97.arbisoft.com>
Date: Tue, 17 Jul 2018 16:25:41 +0500
Subject: [PATCH] Refactor Code for LEARNER-5257

Course key object was not serializable before sending to celery
task.
---
 common/djangoapps/student/signals/signals.py         | 2 +-
 lms/djangoapps/commerce/api/v0/views.py              | 2 +-
 lms/djangoapps/email_marketing/signals.py            | 5 ++---
 lms/djangoapps/email_marketing/tests/test_signals.py | 4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/common/djangoapps/student/signals/signals.py b/common/djangoapps/student/signals/signals.py
index 9e7b7c90e6f..fe45b928412 100644
--- a/common/djangoapps/student/signals/signals.py
+++ b/common/djangoapps/student/signals/signals.py
@@ -7,4 +7,4 @@ ENROLLMENT_TRACK_UPDATED = Signal(providing_args=['user', 'course_key'])
 UNENROLL_DONE = Signal(providing_args=["course_enrollment", "skip_refund"])
 ENROLL_STATUS_CHANGE = Signal(providing_args=["event", "user", "course_id", "mode", "cost", "currency"])
 REFUND_ORDER = Signal(providing_args=["course_enrollment"])
-SAILTHRU_AUDIT_PURCHASE = Signal(providing_args=["event", "user", "course_id", "mode"])
+SAILTHRU_AUDIT_PURCHASE = Signal(providing_args=["user", "course_id", "mode"])
diff --git a/lms/djangoapps/commerce/api/v0/views.py b/lms/djangoapps/commerce/api/v0/views.py
index 5ca26fabc53..e02e971de7b 100644
--- a/lms/djangoapps/commerce/api/v0/views.py
+++ b/lms/djangoapps/commerce/api/v0/views.py
@@ -143,7 +143,7 @@ class BasketsView(APIView):
             self._enroll(course_key, user, default_enrollment_mode.slug)
             mode = CourseMode.AUDIT if audit_mode else CourseMode.HONOR
             SAILTHRU_AUDIT_PURCHASE.send(
-                sender=None, event='enroll', user=user, mode=mode, course_id=course_key
+                sender=None, user=user, mode=mode, course_id=course_id
             )
             self._handle_marketing_opt_in(request, course_key, user)
             return DetailResponse(msg)
diff --git a/lms/djangoapps/email_marketing/signals.py b/lms/djangoapps/email_marketing/signals.py
index 3109f325d9f..157cd6fc59e 100644
--- a/lms/djangoapps/email_marketing/signals.py
+++ b/lms/djangoapps/email_marketing/signals.py
@@ -41,7 +41,7 @@ SAILTHRU_AUDIT_PURCHASE_ENABLED = 'audit_purchase_enabled'
 
 
 @receiver(SAILTHRU_AUDIT_PURCHASE)
-def update_sailthru(sender, event, user, mode, course_id, **kwargs):
+def update_sailthru(sender, user, mode, course_id, **kwargs):  # pylint: disable=unused-argument
     """
     Receives signal and calls a celery task to update the
     enrollment track
@@ -52,9 +52,8 @@ def update_sailthru(sender, event, user, mode, course_id, **kwargs):
         None
     """
     if WAFFLE_SWITCHES.is_enabled(SAILTHRU_AUDIT_PURCHASE_ENABLED) and mode in CourseMode.AUDIT_MODES:
-        course_key = course_id
         email = str(user.email)
-        update_course_enrollment.delay(email, course_key, mode)
+        update_course_enrollment.delay(email, course_id, mode)
 
 
 @receiver(CREATE_LOGON_COOKIE)
diff --git a/lms/djangoapps/email_marketing/tests/test_signals.py b/lms/djangoapps/email_marketing/tests/test_signals.py
index d0b67cbf940..2a96d0fd10b 100644
--- a/lms/djangoapps/email_marketing/tests/test_signals.py
+++ b/lms/djangoapps/email_marketing/tests/test_signals.py
@@ -716,7 +716,7 @@ class SailthruTests(TestCase):
     @patch('sailthru.sailthru_client.SailthruClient.purchase')
     def test_switch_is_disabled(self, mock_sailthru_purchase):
         """Make sure sailthru purchase is not called when waffle switch is disabled"""
-        update_sailthru(None, None, self.user, 'verified', self.course_id)
+        update_sailthru(None, self.user, 'verified', self.course_id)
         self.assertFalse(mock_sailthru_purchase.called)
 
     @patch('openedx.core.djangoapps.waffle_utils.WaffleSwitchNamespace.is_enabled')
@@ -726,5 +726,5 @@ class SailthruTests(TestCase):
             i: waffle switch is True and mode is verified
         """
         switch.return_value = True
-        update_sailthru(None, None, self.user, 'verified', self.course_id)
+        update_sailthru(None, self.user, 'verified', self.course_id)
         self.assertFalse(mock_sailthru_purchase.called)
-- 
GitLab