From 33590483e29611df6c7f08f72d98a4217b5a2931 Mon Sep 17 00:00:00 2001
From: Michael Terry <mterry@edx.org>
Date: Thu, 12 Jul 2018 15:37:06 -0400
Subject: [PATCH] Delay less in notify_credentials

---
 .../credentials/management/commands/notify_credentials.py  | 7 ++++---
 .../management/commands/tests/test_notify_credentials.py   | 6 +++---
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py b/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py
index 0511792ddb5..582c3506ccf 100644
--- a/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py
+++ b/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py
@@ -59,9 +59,10 @@ def paged_query(queryset, delay, page_size):
         page_end = page_start + page_size
         subquery = queryset[page_start:page_end]
 
+        if delay and page:
+            time.sleep(delay)
+
         for i, item in enumerate(subquery, start=1):
-            if delay:
-                time.sleep(delay)
             yield page_start + i, item
 
 
@@ -119,7 +120,7 @@ class Command(BaseCommand):
             '--delay',
             type=float,
             default=0,
-            help="Number of seconds to sleep between processing certificates, so that we don't flood our queues.",
+            help="Number of seconds to sleep between processing queries, so that we don't flood our queues.",
         )
         parser.add_argument(
             '--page-size',
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 7099988aea0..1d5dc7ee3d4 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
@@ -99,12 +99,12 @@ class TestNotifyCredentials(TestCase):
 
     @mock.patch(COMMAND_MODULE + '.time')
     def test_delay(self, mock_time):
-        call_command(Command(), '--start-date', '2017-02-01')
+        call_command(Command(), '--start-date', '2017-01-01', '--page-size=2')
         self.assertEqual(mock_time.sleep.call_count, 0)
         mock_time.sleep.reset_mock()
 
-        call_command(Command(), '--start-date', '2017-02-01', '--delay', '0.2')
-        self.assertEqual(mock_time.sleep.call_count, 4)  # After each cert and each grade (2 each)
+        call_command(Command(), '--start-date', '2017-01-01', '--page-size=2', '--delay', '0.2')
+        self.assertEqual(mock_time.sleep.call_count, 2)  # Between each page, twice (2 pages, for certs and grades)
         self.assertEqual(mock_time.sleep.call_args[0][0], 0.2)
 
     @override_settings(DEBUG=True)
-- 
GitLab