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 <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2018-06-07 17:50:37 -04:00
parent 1cf00a5cc9
commit e484311923
1 changed files with 8 additions and 8 deletions

View File

@ -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)