From fee4ec26f52c584faa0aa5e35de955972b7c56bd Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 28 Jan 2022 12:27:19 -0500 Subject: [PATCH] fix: return a sorted list so tests can be deterministic Tests on Maple were failing: ``` def test_retirement_for_multiple_users(self): user_retirement_url = reverse('bulk_retirement_api') expected_response = { 'successful_user_retirements': [self.user3.username, self.user4.username], 'failed_user_retirements': [] } with self.settings(RETIREMENT_SERVICE_WORKER_USERNAME=self.user1.username): response = self.client.post(user_retirement_url, { "usernames": f'{self.user3.username},{self.user4.username}' }) assert response.status_code == 200 > assert response.data == expected_response E AssertionError: assert {'failed_user... 'testuser3']} == {'failed_user... 'testuser4']} E Omitting 1 identical items, use -vv to show E Differing items: E {'successful_user_retirements': ['testuser4', 'testuser3']} != {'successful_user_retirements': ['testuser3', 'testuser4']} E Use -v to get the full diff ``` `sorted(set(...))` still produces a list, and I guess we didn't care about the order before, since it wasn't determined. So this should be an acceptable change. --- lms/djangoapps/bulk_user_retirement/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/djangoapps/bulk_user_retirement/views.py b/lms/djangoapps/bulk_user_retirement/views.py index ae6b1b2627..a19cdbbea1 100644 --- a/lms/djangoapps/bulk_user_retirement/views.py +++ b/lms/djangoapps/bulk_user_retirement/views.py @@ -66,7 +66,7 @@ class BulkUsersRetirementView(APIView): log.exception(f'500 error retiring account {exc}') failed_user_retirements.append(username) - successful_user_retirements = list(set(usernames_to_retire).difference(failed_user_retirements)) + successful_user_retirements = sorted(set(usernames_to_retire).difference(failed_user_retirements)) return Response( status=status.HTTP_200_OK,