]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Do not assume order of new_peers list elements
authorJohn Davidge <jodavidg@cisco.com>
Tue, 5 Aug 2014 14:13:03 +0000 (15:13 +0100)
committerJohn Davidge <jodavidg@cisco.com>
Tue, 12 Aug 2014 09:57:25 +0000 (10:57 +0100)
This fixes the vpn unit test that breaks with a randomized PYTHONHASHSEED
(see the bug report).

The test assumed that the new_peers list from self.new_update_request had
elements in a particular order. Found with PYTHONHASHSEED=2455351445.

The fix refactors the test case to handle an unsorted new_peers list by
sorting it before running the test.

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: I86e7f84cedbdc8e1d7404363a560fd759d264c49

neutron/tests/unit/db/vpn/test_db_vpnaas.py

index 10c82675f3f23303c26a6724371daed5161a59f4..a12a61335af1cfcb2aee1e1eaca4fbd4242145c1 100644 (file)
@@ -1252,9 +1252,13 @@ class TestVpnaas(VPNPluginDbTestCase):
                     self.assertEqual(expected_status_int, res.status_int)
                     if expected_status_int == 200:
                         res_dict = self.deserialize(self.fmt, res)
+                        actual = res_dict['ipsec_site_connection']
                         for k, v in update.items():
-                            self.assertEqual(
-                                res_dict['ipsec_site_connection'][k], v)
+                            # Sort lists before checking equality
+                            if isinstance(actual[k], list):
+                                self.assertEqual(v, sorted(actual[k]))
+                            else:
+                                self.assertEqual(v, actual[k])
 
     def test_show_ipsec_site_connection(self):
         """Test case to show a ipsec_site_connection."""