From ab7bec3434965ccf4553663caa47540375f00abc Mon Sep 17 00:00:00 2001 From: danakj Date: Fri, 1 Nov 2019 17:55:52 +0000 Subject: [PATCH] Make find_owners_test.py pass consistently. The finder.owners_queue contains a set of owners but they appear in an arbitrary order on each invocation of the test. The current method of assertEqual() with a list fails randomly because of the ordering being different. Example: https://ci.chromium.org/p/infra/builders/try/Depot%20Tools%20Presubmit%20(win)/b8897976148721436512 This changes comparisons of owners_queue to use an assertEqualSets() which does a comparison that is order-independent. Change-Id: Ia827795af283dadeb56f76ae0cf14fa4ad7e9eeb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1895699 Reviewed-by: Aaron Gable Reviewed-by: Garrett Beaty Commit-Queue: danakj --- tests/owners_finder_test.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/owners_finder_test.py b/tests/owners_finder_test.py index 6ebf235173..60a8b495a4 100755 --- a/tests/owners_finder_test.py +++ b/tests/owners_finder_test.py @@ -132,7 +132,11 @@ class _BaseTestCase(unittest.TestCase): class OwnersFinderTests(_BaseTestCase): def test_constructor(self): - self.assertNotEquals(self.defaultFinder(), None) + self.assertNotEqual(self.defaultFinder(), None) + + # A surrogate for the python 3 assertCountEqual() method. + def assertCountEqual(self, a, b): + self.assertEqual(sorted(a), sorted(b)) def test_skip_files_owned_by_reviewers(self): files = [ @@ -155,8 +159,8 @@ class OwnersFinderTests(_BaseTestCase): i = 0 while i < 2: i += 1 - self.assertEqual(finder.owners_queue, - [brett, john, darin, peter, ken, ben, tom]) + self.assertCountEqual(finder.owners_queue, + [brett, john, darin, peter, ken, ben, tom]) self.assertEqual(finder.unreviewed_files, { 'base/vlog.h', 'chrome/browser/defaults.h', @@ -192,7 +196,7 @@ class OwnersFinderTests(_BaseTestCase): finder = self.defaultFinder() finder.select_owner(darin) - self.assertEqual(finder.owners_queue, [brett, peter, ken, ben, tom]) + self.assertCountEqual(finder.owners_queue, [brett, peter, ken, ben, tom]) self.assertEqual(finder.selected_owners, {darin}) self.assertEqual(finder.deselected_owners, {john}) self.assertEqual(finder.reviewed_by, {'content/bar/foo.cc': darin, @@ -204,7 +208,7 @@ class OwnersFinderTests(_BaseTestCase): finder = self.defaultFinder() finder.select_owner(brett) - self.assertEqual(finder.owners_queue, [john, darin, peter, ken, tom]) + self.assertCountEqual(finder.owners_queue, [john, darin, peter, ken, tom]) self.assertEqual(finder.selected_owners, {brett}) self.assertEqual(finder.deselected_owners, {ben}) self.assertEqual(finder.reviewed_by, @@ -220,7 +224,7 @@ class OwnersFinderTests(_BaseTestCase): def test_deselect(self): finder = self.defaultFinder() finder.deselect_owner(john) - self.assertEqual(finder.owners_queue, [brett, peter, ken, ben, tom]) + self.assertCountEqual(finder.owners_queue, [brett, peter, ken, ben, tom]) self.assertEqual(finder.selected_owners, {darin}) self.assertEqual(finder.deselected_owners, {john}) self.assertEqual(finder.reviewed_by, {'content/bar/foo.cc': darin,