From e48431192375bbace0adc896b9c4de3a9cd00b34 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Thu, 7 Jun 2018 17:50:37 -0400 Subject: [PATCH] update shell tests to not rely on the serialization order of a dict Under python 3 with ordering randomized we cannot depend on the JSON output matching exactly. Instead we de-serialize the data structure that was written and compare the structures, which will always match. Change-Id: I134b62413a7cde25f3efda6a2452c1e3d11d41d0 Signed-off-by: Doug Hellmann --- glanceclient/tests/unit/test_shell.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/glanceclient/tests/unit/test_shell.py b/glanceclient/tests/unit/test_shell.py index ce2fec3f..0f15007d 100644 --- a/glanceclient/tests/unit/test_shell.py +++ b/glanceclient/tests/unit/test_shell.py @@ -799,10 +799,10 @@ class ShellCacheSchemaTest(testutils.TestCase): open.mock_calls[0]) self.assertEqual(mock.call(self.cache_files[1], 'w'), open.mock_calls[4]) - self.assertEqual(mock.call().write(json.dumps(schema_odict)), - open.mock_calls[2]) - self.assertEqual(mock.call().write(json.dumps(schema_odict)), - open.mock_calls[6]) + actual = json.loads(open.mock_calls[2][1][0]) + self.assertEqual(schema_odict, actual) + actual = json.loads(open.mock_calls[6][1][0]) + self.assertEqual(schema_odict, actual) @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True) @mock.patch('os.path.exists', side_effect=[True, False, False, False]) @@ -822,10 +822,10 @@ class ShellCacheSchemaTest(testutils.TestCase): open.mock_calls[0]) self.assertEqual(mock.call(self.cache_files[1], 'w'), open.mock_calls[4]) - self.assertEqual(mock.call().write(json.dumps(schema_odict)), - open.mock_calls[2]) - self.assertEqual(mock.call().write(json.dumps(schema_odict)), - open.mock_calls[6]) + actual = json.loads(open.mock_calls[2][1][0]) + self.assertEqual(schema_odict, actual) + actual = json.loads(open.mock_calls[6][1][0]) + self.assertEqual(schema_odict, actual) @mock.patch('six.moves.builtins.open', new=mock.mock_open(), create=True) @mock.patch('os.path.exists', return_value=True)