From 2abb77b4dadd4150f554f134ec99b07c2b28900f Mon Sep 17 00:00:00 2001 From: johndavidge Date: Fri, 8 Aug 2014 04:48:59 -0700 Subject: [PATCH] Do not assume order of report list elements This fixes the test_report_multiple_services unit test that breaks with a randomized PYTHONHASHSEED (see the bug report). The test assumed that the report list from self.driver.report_status() had elements in a particular order. Found with PYTHONHASHSEED=2455351445. The fix refactors the test case to handle an unsorted report list by sorting it before checking equality. Partial-bug: #1348818 Note: There are several other unrelated unit tests that also break with a randomized PYTHONHASHSEED, but they are not addressed here. They will be addressed in separate patches. Change-Id: I542c3818821fa2f6e460fd254a3842530ecea8d9 --- .../unit/services/vpn/device_drivers/test_cisco_ipsec.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py b/neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py index f08364894..fe373055c 100644 --- a/neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py +++ b/neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py @@ -14,6 +14,7 @@ import copy import httplib +import operator import mock @@ -1530,7 +1531,8 @@ class TestCiscoCsrIPsecDeviceDriverSyncStatuses(base.BaseTestCase): u'4': {u'status': constants.ACTIVE, u'updated_pending_status': True}} }] - self.assertEqual(expected_report, report) + self.assertEqual(expected_report, + sorted(report, key=operator.itemgetter('id'))) # Check that service and connection statuses are updated self.assertEqual(constants.ACTIVE, vpn_service1.last_status) self.assertEqual(constants.ACTIVE, -- 2.45.2