aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/unittest/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/unittest/util.py')
-rw-r--r--Lib/unittest/util.py30
1 files changed, 7 insertions, 23 deletions
diff --git a/Lib/unittest/util.py b/Lib/unittest/util.py
index 220a024e903..ccdf0b81fa8 100644
--- a/Lib/unittest/util.py
+++ b/Lib/unittest/util.py
@@ -1,6 +1,6 @@
"""Various utility functions."""
-from collections import namedtuple, OrderedDict
+from collections import namedtuple, OrderedDict
__unittest = True
@@ -14,7 +14,6 @@ def safe_repr(obj, short=False):
return result
return result[:_MAX_LENGTH] + ' [truncated]...'
-
def strclass(cls):
return "%s.%s" % (cls.__module__, cls.__name__)
@@ -59,42 +58,27 @@ def sorted_list_difference(expected, actual):
return missing, unexpected
-def unorderable_list_difference(expected, actual, ignore_duplicate=False):
+def unorderable_list_difference(expected, actual):
"""Same behavior as sorted_list_difference but
for lists of unorderable items (like dicts).
As it does a linear search per item (remove) it
- has O(n*n) performance.
- """
+ has O(n*n) performance."""
missing = []
- unexpected = []
while expected:
item = expected.pop()
try:
actual.remove(item)
except ValueError:
missing.append(item)
- if ignore_duplicate:
- for lst in expected, actual:
- try:
- while True:
- lst.remove(item)
- except ValueError:
- pass
- if ignore_duplicate:
- while actual:
- item = actual.pop()
- unexpected.append(item)
- try:
- while True:
- actual.remove(item)
- except ValueError:
- pass
- return missing, unexpected
# anything left in actual is unexpected
return missing, actual
+def three_way_cmp(x, y):
+ """Return -1 if x < y, 0 if x == y and 1 if x > y"""
+ return (x > y) - (x < y)
+
_Mismatch = namedtuple('Mismatch', 'actual expected value')
def _count_diff_all_purpose(actual, expected):