]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Do not assume order of report list elements
authorjohndavidge <jodavidg@cisco.com>
Fri, 8 Aug 2014 11:48:59 +0000 (04:48 -0700)
committerJohn Davidge <jodavidg@cisco.com>
Mon, 29 Sep 2014 11:00:51 +0000 (11:00 +0000)
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

neutron/tests/unit/services/vpn/device_drivers/test_cisco_ipsec.py

index f08364894ca5b624c40ef60550d5f68dda858098..fe373055c616eda432fe5c91f695b4d544777bb7 100644 (file)
@@ -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,