Issue #25195: Fix a regression in mock.MagicMock
_Call is a subclass of tuple (changeset 3603bae63c13 only works for classes) so we need to implement __ne__ ourselves. Patch by Andrew Plummer.
This commit is contained in:
parent
fa0f62d6ab
commit
ce913877e4
|
@ -2029,6 +2029,9 @@ class _Call(tuple):
|
|||
return (other_args, other_kwargs) == (self_args, self_kwargs)
|
||||
|
||||
|
||||
__ne__ = object.__ne__
|
||||
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
if self.name is None:
|
||||
return _Call(('', args, kwargs), name='()')
|
||||
|
|
|
@ -304,6 +304,17 @@ class MockTest(unittest.TestCase):
|
|||
# an exception. See issue 24857.
|
||||
self.assertFalse(mock.call_args == "a long sequence")
|
||||
|
||||
|
||||
def test_calls_equal_with_any(self):
|
||||
call1 = mock.call(mock.MagicMock())
|
||||
call2 = mock.call(mock.ANY)
|
||||
|
||||
# Check that equality and non-equality is consistent even when
|
||||
# comparing with mock.ANY
|
||||
self.assertTrue(call1 == call2)
|
||||
self.assertFalse(call1 != call2)
|
||||
|
||||
|
||||
def test_assert_called_with(self):
|
||||
mock = Mock()
|
||||
mock()
|
||||
|
@ -319,6 +330,12 @@ class MockTest(unittest.TestCase):
|
|||
mock.assert_called_with(1, 2, 3, a='fish', b='nothing')
|
||||
|
||||
|
||||
def test_assert_called_with_any(self):
|
||||
m = MagicMock()
|
||||
m(MagicMock())
|
||||
m.assert_called_with(mock.ANY)
|
||||
|
||||
|
||||
def test_assert_called_with_function_spec(self):
|
||||
def f(a, b, c, d=None):
|
||||
pass
|
||||
|
|
|
@ -94,6 +94,10 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #25195: Fix a regression in mock.MagicMock. _Call is a subclass of
|
||||
tuple (changeset 3603bae63c13 only works for classes) so we need to
|
||||
implement __ne__ ourselves. Patch by Andrew Plummer.
|
||||
|
||||
- Issue #26644: Raise ValueError rather than SystemError when a negative
|
||||
length is passed to SSLSocket.recv() or read().
|
||||
|
||||
|
|
Loading…
Reference in New Issue