diff --git a/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py b/openedx/core/djangoapps/credentials/management/commands/notify_credentials.py index 0511792ddb586e67c30a03a09ae1ecb9d4101d86..582c3506ccfaf3785e6a7f59fa8d3c118f968211 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 7099988aea070933d3734503450ad0b9eb524104..1d5dc7ee3d427df755ee54e221b8a59543ab504c 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)