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