Merge "Improve assertJsonEqual error reporting"
This commit is contained in:
commit
7602735374
21
nova/test.py
21
nova/test.py
@ -29,6 +29,7 @@ import contextlib
|
||||
import copy
|
||||
import datetime
|
||||
import inspect
|
||||
import itertools
|
||||
import os
|
||||
import pprint
|
||||
import sys
|
||||
@ -432,7 +433,15 @@ class TestCase(testtools.TestCase):
|
||||
if isinstance(expected, dict) and isinstance(observed, dict):
|
||||
self.assertEqual(
|
||||
len(expected), len(observed),
|
||||
'path: %s. Dict lengths are not equal' % path)
|
||||
('path: %s. Different dict key sets\n'
|
||||
'expected=%s\n'
|
||||
'observed=%s\n'
|
||||
'difference=%s') %
|
||||
(path,
|
||||
sorted(expected.keys()),
|
||||
sorted(observed.keys()),
|
||||
list(set(expected.keys()).symmetric_difference(
|
||||
set(observed.keys())))))
|
||||
expected_keys = sorted(expected)
|
||||
observed_keys = sorted(observed)
|
||||
self.assertEqual(
|
||||
@ -444,7 +453,15 @@ class TestCase(testtools.TestCase):
|
||||
isinstance(observed, (list, tuple, set))):
|
||||
self.assertEqual(
|
||||
len(expected), len(observed),
|
||||
'path: %s. List lengths are not equal' % path)
|
||||
('path: %s. Different list items\n'
|
||||
'expected=%s\n'
|
||||
'observed=%s\n'
|
||||
'difference=%s') %
|
||||
(path,
|
||||
sorted(expected, key=sort_key),
|
||||
sorted(observed, key=sort_key),
|
||||
[a for a in itertools.chain(expected, observed) if
|
||||
(a not in expected) or (a not in observed)]))
|
||||
|
||||
expected_values_iter = iter(sorted(expected, key=sort_key))
|
||||
observed_values_iter = iter(sorted(observed, key=sort_key))
|
||||
|
Loading…
x
Reference in New Issue
Block a user