summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAna Krivokapic <akrivoka@redhat.com>2013-04-15 15:15:02 +0200
committerMartin Kosek <mkosek@redhat.com>2013-04-19 12:46:25 +0200
commit18149fadb6a78a736d434634939074ea34bee79b (patch)
tree3a07e9060ec00c1d19fe225f8fd29e1da048f5b4
parent4f47ac9d7f3d9cb2f1381858b05a7ba851917592 (diff)
downloadfreeipa-18149fadb6a78a736d434634939074ea34bee79b.tar.gz
freeipa-18149fadb6a78a736d434634939074ea34bee79b.tar.xz
freeipa-18149fadb6a78a736d434634939074ea34bee79b.zip
Do not sort dictionaries in assert_deepequal utility function
Sorting lists of dictionaries in assert_deepequal was causing inconsistencies in unit test execution. To fix this, do not sort lists if their elements are dictionaries. https://fedorahosted.org/freeipa/ticket/3562
-rw-r--r--tests/test_xmlrpc/test_netgroup_plugin.py12
-rw-r--r--tests/util.py9
2 files changed, 13 insertions, 8 deletions
diff --git a/tests/test_xmlrpc/test_netgroup_plugin.py b/tests/test_xmlrpc/test_netgroup_plugin.py
index 7a0dc5fad..ee826b752 100644
--- a/tests/test_xmlrpc/test_netgroup_plugin.py
+++ b/tests/test_xmlrpc/test_netgroup_plugin.py
@@ -466,18 +466,18 @@ class test_netgroup(Declarative):
result=[
{
'dn': fuzzy_netgroupdn,
- 'cn': [netgroup2],
- 'description': [u'Test netgroup 2'],
- 'nisdomainname': [u'%s' % api.env.domain],
- },
- {
- 'dn': fuzzy_netgroupdn,
'memberhost_host': (host1,),
'memberhost_hostgroup': (hostgroup1,),
'cn': [netgroup1],
'description': [u'Test netgroup 1'],
'nisdomainname': [u'%s' % api.env.domain],
},
+ {
+ 'dn': fuzzy_netgroupdn,
+ 'cn': [netgroup2],
+ 'description': [u'Test netgroup 2'],
+ 'nisdomainname': [u'%s' % api.env.domain],
+ },
],
),
),
diff --git a/tests/util.py b/tests/util.py
index ed62a223a..117d2c834 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -316,8 +316,13 @@ def assert_deepequal(expected, got, doc='', stack=tuple()):
raise AssertionError(
LEN % (doc, len(expected), len(got), expected, got, stack)
)
- s_got = sorted(got)
- s_expected = sorted(expected)
+ # Sort list elements, unless they are dictionaries
+ if expected and isinstance(expected[0], dict):
+ s_got = got
+ s_expected = expected
+ else:
+ s_got = sorted(got)
+ s_expected = sorted(expected)
for (i, e_sub) in enumerate(s_expected):
g_sub = s_got[i]
assert_deepequal(e_sub, g_sub, doc, stack + (i,))