forked from pool/python-datadiff
provided was 2.0.0. - Disable broken tests with python 3.11, related to ordering of sets - Remove six dependency - Update to version 2.1.0: * Bump version * Seems like this is never used * Better exception testing pattern, better test coverage :) * Remove python <2.6 stuff; and an adhoc nose test runner * Only round, not convert to hashable, when comparing dict values * Coverage reporting * PEP8 and other good practice fixes * Add LICENSE file, build wheels * Move tests into package subdir * Add tox.ini and test against more versions of python * fix __bool__ case when dict only has equal type diffs * fuzzy matching for float comparisons, fix empty set diffs * test_hashable_dict_values * revert datadiff/tools.py hashable to maintain module_nose.tools compatibility * use hashable when comparing OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-datadiff?expand=0&rev=4
391 lines
11 KiB
Diff
391 lines
11 KiB
Diff
Index: datadiff-2.2.0/datadiff/tests/test_datadiff.py
|
|
===================================================================
|
|
--- datadiff-2.2.0.orig/datadiff/tests/test_datadiff.py
|
|
+++ datadiff-2.2.0/datadiff/tests/test_datadiff.py
|
|
@@ -4,8 +4,7 @@ from textwrap import dedent
|
|
from datetime import datetime
|
|
from unittest.case import SkipTest
|
|
|
|
-import six
|
|
-from nose.tools import assert_raises, assert_equal, assert_false, raises
|
|
+from pytest import raises
|
|
|
|
from datadiff import diff, DataDiff, NotHashable, DiffNotImplementedForType, DiffTypeError
|
|
|
|
@@ -19,16 +18,17 @@ class Foo(object):
|
|
|
|
|
|
def test_diff_objects():
|
|
- with assert_raises(DiffNotImplementedForType) as raised:
|
|
+ with raises(DiffNotImplementedForType) as raised:
|
|
diff(Foo(), Foo(), fromfile="x", tofile="y")
|
|
- assert_equal(raised.exception.attempted_type, Foo)
|
|
- assert_equal(str(raised.exception), "diff() not implemented for <class 'datadiff.tests.test_datadiff.Foo'>")
|
|
+ assert raised.value.attempted_type is Foo
|
|
+ assert type(raised.value) is DiffNotImplementedForType
|
|
|
|
|
|
def test_diff_oneline_strings():
|
|
- with assert_raises(DiffNotImplementedForType) as raised:
|
|
+ with raises(DiffNotImplementedForType) as raised:
|
|
diff('foobar', 'baz', fromfile="x", tofile="y")
|
|
- assert_equal(raised.exception.attempted_type, str)
|
|
+ assert type(raised.value) is DiffNotImplementedForType
|
|
+ assert raised.value.attempted_type is str
|
|
|
|
|
|
def test_diff_multiline_strings():
|
|
@@ -40,12 +40,11 @@ def test_diff_multiline_strings():
|
|
abc
|
|
-def
|
|
ghi''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_unicode_vs_str():
|
|
- if six.PY3:
|
|
- raise SkipTest("Unicode and bytes are different types")
|
|
+ raise SkipTest("Unicode and bytes are different types")
|
|
d = diff(u'abc\ndef\nghi', b'abc\nghi', fromfile="x", tofile="y")
|
|
expected = dedent('''\
|
|
--- x
|
|
@@ -54,7 +53,7 @@ def test_diff_unicode_vs_str():
|
|
abc
|
|
-def
|
|
ghi''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list():
|
|
@@ -75,7 +74,7 @@ def test_diff_list():
|
|
-5,
|
|
+6,
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list_context():
|
|
@@ -104,7 +103,7 @@ def test_diff_list_context():
|
|
1,
|
|
@@ @@
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list_2nd_longer():
|
|
@@ -120,7 +119,7 @@ def test_diff_list_2nd_longer():
|
|
+4,
|
|
+5,
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list_list():
|
|
@@ -136,7 +135,7 @@ def test_diff_list_list():
|
|
-[2, 3],
|
|
4,
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list_dict():
|
|
@@ -152,7 +151,7 @@ def test_diff_list_dict():
|
|
-{'a': 'b'},
|
|
4,
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_list_set():
|
|
@@ -168,7 +167,7 @@ def test_diff_list_set():
|
|
-%s8, 9%s,
|
|
4,
|
|
]''') % (set_start, set_end)
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_seq_objects():
|
|
@@ -194,7 +193,7 @@ def test_diff_seq_objects():
|
|
1,
|
|
+2,
|
|
])''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_almost_seq_objects():
|
|
@@ -205,7 +204,7 @@ def test_diff_almost_seq_objects():
|
|
def __iter__(self):
|
|
return iter(self.list)
|
|
|
|
- assert_raises(DiffTypeError, diff, FooSeq([1]), FooSeq([1, 2]))
|
|
+ raises(DiffTypeError, diff, FooSeq([1]), FooSeq([1, 2]))
|
|
|
|
|
|
def test_tuple():
|
|
@@ -219,7 +218,7 @@ def test_tuple():
|
|
-2,
|
|
+3,
|
|
)''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_dict():
|
|
@@ -248,7 +247,7 @@ def test_diff_dict():
|
|
assert "-'zero': 0," in diff_str
|
|
assert "+'zero': '@'," in diff_str
|
|
context_pattern = r"^ '\w+': \d+,$"
|
|
- assert_equal(_count_lines(context_pattern, diff_str), 3)
|
|
+ assert _count_lines(context_pattern, diff_str) == 3
|
|
|
|
|
|
def _count_lines(pattern, string):
|
|
@@ -273,7 +272,7 @@ def test_diff_dict_keytypes():
|
|
+2: 2,
|
|
+datetime.datetime(2010, 10, 28, 0, 0): 1,
|
|
}''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_dict_complex():
|
|
@@ -287,7 +286,7 @@ def test_diff_dict_complex():
|
|
'a': 1,
|
|
-'b': {'foo': 'bar'},
|
|
}''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_dict_similar_nested():
|
|
@@ -301,7 +300,7 @@ def test_diff_dict_similar_nested():
|
|
-'a': [1, 2],
|
|
+'a': (1, 2),
|
|
}''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_set(set_type=set):
|
|
@@ -320,7 +319,7 @@ def test_diff_set(set_type=set):
|
|
'abc',
|
|
7,
|
|
])''') % set_type.__name__
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_set_context():
|
|
@@ -337,7 +336,7 @@ def test_diff_set_context():
|
|
3,
|
|
@@ @@
|
|
])''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_diff_frozenset():
|
|
@@ -345,52 +344,50 @@ def test_diff_frozenset():
|
|
|
|
|
|
def test_equal_set():
|
|
- assert_false(diff(set([1]), set([1])))
|
|
+ assert not diff(set([1]), set([1]))
|
|
|
|
|
|
def test_empty_set():
|
|
- assert_false(diff(set([]), set([])))
|
|
+ assert not diff(set([]), set([]))
|
|
|
|
|
|
def test_eval_bool():
|
|
d = diff([1], [1], fromfile="x", tofile="y")
|
|
- assert_equal(bool(d), False)
|
|
+ assert bool(d) == False
|
|
|
|
d = diff([1], [2], fromfile="x", tofile="y")
|
|
- assert_equal(bool(d), True)
|
|
+ assert bool(d) == True
|
|
|
|
d = diff(dict(a=1), dict(a=1), fromfile="x", tofile="y")
|
|
- assert_equal(bool(d), False)
|
|
+ assert bool(d) == False
|
|
|
|
d = diff(dict(a=1, b=2, c=3, d=4), dict(a=1, b=2, c=3, d=4), fromfile="x", tofile="y")
|
|
- assert_equal(bool(d), False)
|
|
+ assert bool(d) == False
|
|
|
|
|
|
def test_equal():
|
|
d = diff([1], [1], fromfile="x", tofile="y")
|
|
- assert_equal(str(d), '')
|
|
+ assert str(d) == ''
|
|
|
|
|
|
-@raises(DiffTypeError)
|
|
def test_diff_types():
|
|
- d = diff([1], {1: 1}, fromfile="x", tofile="y")
|
|
+ raises(DiffTypeError, diff, [1], {1: 1}, fromfile="x", tofile="y")
|
|
|
|
|
|
-@raises(Exception)
|
|
def test_DataDiff_init_params():
|
|
- DataDiff(list, '[')
|
|
+ raises(Exception, DataDiff, list, '[')
|
|
|
|
|
|
def test_DataDiff_change_type():
|
|
dd = DataDiff(list, '[', ']')
|
|
dd.multi('foobar', [1234])
|
|
- assert_raises(Exception, str, dd)
|
|
+ raises(Exception, str, dd)
|
|
|
|
|
|
def test_unhashable_type():
|
|
a = []
|
|
b = [slice(1)]
|
|
- assert_raises(NotHashable, diff, a, b)
|
|
+ raises(NotHashable, diff, a, b)
|
|
|
|
|
|
def test_recursive_list():
|
|
@@ -413,7 +410,7 @@ def test_recursive_list():
|
|
],
|
|
3,
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_recursive_tuple_different_types():
|
|
@@ -437,7 +434,7 @@ def test_recursive_tuple_different_types
|
|
),
|
|
3,
|
|
)''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_recursive_dict():
|
|
@@ -455,7 +452,7 @@ def test_recursive_dict():
|
|
},
|
|
'c': 3,
|
|
}''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_recursive_set():
|
|
@@ -473,7 +470,7 @@ def test_recursive_set():
|
|
2,
|
|
])''' % (frozenset_start, frozenset_end,
|
|
frozenset_start, frozenset_end))
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_nested_unhashable():
|
|
@@ -496,7 +493,7 @@ def test_nested_unhashable():
|
|
},
|
|
),
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
|
|
|
|
def test_nested_unhashable2():
|
|
@@ -517,4 +514,4 @@ def test_nested_unhashable2():
|
|
},
|
|
},
|
|
]''')
|
|
- assert_equal(str(d), expected)
|
|
+ assert str(d) == expected
|
|
Index: datadiff-2.2.0/datadiff/tests/test_datadiff_tools.py
|
|
===================================================================
|
|
--- datadiff-2.2.0.orig/datadiff/tests/test_datadiff_tools.py
|
|
+++ datadiff-2.2.0/datadiff/tests/test_datadiff_tools.py
|
|
@@ -2,20 +2,19 @@ import sys
|
|
from textwrap import dedent
|
|
|
|
from datadiff import tools
|
|
-from datadiff.tests.test_datadiff import assert_equal
|
|
|
|
-from nose.tools import assert_raises
|
|
+from pytest import raises
|
|
|
|
|
|
def test_assert_equal_true():
|
|
# nothing raised
|
|
- assert_equal(None, tools.assert_equals(7, 7))
|
|
+ assert tools.assert_equals(7, 7) is None
|
|
|
|
|
|
def test_assert_equal_false():
|
|
- with assert_raises(AssertionError) as raised:
|
|
+ with raises(AssertionError) as raised:
|
|
tools.assert_equals([3, 4], [5, 6])
|
|
- assert_equal(str(raised.exception), dedent('''\
|
|
+ assert str(raised.value) == dedent('''\
|
|
|
|
--- a
|
|
+++ b
|
|
@@ -25,29 +24,29 @@ def test_assert_equal_false():
|
|
-4,
|
|
+5,
|
|
+6,
|
|
- ]'''))
|
|
+ ]''')
|
|
|
|
|
|
def test_assert_equal_msg():
|
|
- with assert_raises(AssertionError) as raised:
|
|
+ with raises(AssertionError) as raised:
|
|
tools.assert_equals(3, 4, "whoops")
|
|
- assert_equal(str(raised.exception), "whoops")
|
|
+ assert str(raised.value) == "whoops"
|
|
|
|
|
|
def test_assert_equals():
|
|
- assert_equal(tools.assert_equal, tools.assert_equals)
|
|
+ assert tools.assert_equal == tools.assert_equals
|
|
|
|
|
|
def test_assert_equal_simple():
|
|
- with assert_raises(AssertionError) as raised:
|
|
+ with raises(AssertionError) as raised:
|
|
tools.assert_equals(True, False)
|
|
- assert_equal(str(raised.exception), 'True != False')
|
|
+ assert str(raised.value) == 'True != False'
|
|
|
|
|
|
def test_assert_equal_simple_types():
|
|
- with assert_raises(AssertionError) as raised:
|
|
+ with raises(AssertionError) as raised:
|
|
tools.assert_equals('a', 7)
|
|
- assert_equal(str(raised.exception), dedent("'a' != 7"))
|
|
+ assert str(raised.value) == dedent("'a' != 7")
|
|
|
|
|
|
def test_assert_almost_equal():
|
|
@@ -59,7 +58,7 @@ def test_assert_almost_equal():
|
|
|
|
|
|
def test_assert_not_almost_equal():
|
|
- assert_raises(AssertionError, tools.assertAlmostEqual, [1.0], [1.00001])
|
|
- assert_raises(AssertionError, tools.assertAlmostEqual, [1.0], [1.0001], places=4)
|
|
- assert_raises(AssertionError, tools.assertAlmostEqual, {"k": 1.0}, {"k": 1.1}, places=4)
|
|
- assert_raises(AssertionError, tools.assertAlmostEqual, {1.0}, {1.1}, places=4)
|
|
+ raises(AssertionError, tools.assertAlmostEqual, [1.0], [1.00001])
|
|
+ raises(AssertionError, tools.assertAlmostEqual, [1.0], [1.0001], places=4)
|
|
+ raises(AssertionError, tools.assertAlmostEqual, {"k": 1.0}, {"k": 1.1}, places=4)
|
|
+ raises(AssertionError, tools.assertAlmostEqual, {1.0}, {1.1}, places=4)
|