]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-37555: Add tests checking every function using _call_matcher both with and withou...
authorElizabeth Uselton <elizabeth.uselton@rover.com>
Sun, 4 Aug 2019 01:46:43 +0000 (18:46 -0700)
committerElizabeth Uselton <elizabeth.uselton@rover.com>
Mon, 5 Aug 2019 07:53:21 +0000 (00:53 -0700)
Lib/unittest/test/testmock/testasync.py
Lib/unittest/test/testmock/testhelpers.py

index fa906e4f7152f8c4cc5f92bddb3cdf85596f5278..ec6809cbd9490d6133e5b2083819ef307e19c736 100644 (file)
@@ -2,8 +2,8 @@ import asyncio
 import inspect
 import unittest
 
-from unittest.mock import (call, AsyncMock, patch, MagicMock, create_autospec,
-                           _AwaitEvent)
+from unittest.mock import (ANY, call, AsyncMock, patch, MagicMock,
+                           create_autospec, _AwaitEvent)
 
 
 def tearDownModule():
@@ -599,6 +599,30 @@ class AsyncMockAssert(unittest.TestCase):
         asyncio.run(self._runnable_test('SomethingElse'))
         self.mock.assert_has_awaits(calls)
 
+    def test_awaits_asserts_with_any(self):
+        class Foo:
+            def __eq__(self, other): pass
+
+        asyncio.run(self._runnable_test(Foo(), 1))
+
+        self.mock.assert_has_awaits([call(ANY, 1)])
+        self.mock.assert_awaited_with(ANY, 1)
+        self.mock.assert_any_await(ANY, 1)
+
+    def test_awaits_asserts_with_spec_and_any(self):
+        class Foo:
+            def __eq__(self, other): pass
+
+        mock_with_spec = AsyncMock(spec=Foo)
+
+        async def _custom_mock_runnable_test(*args):
+            await mock_with_spec(*args)
+
+        asyncio.run(_custom_mock_runnable_test(Foo(), 1))
+        mock_with_spec.assert_has_awaits([call(ANY, 1)])
+        mock_with_spec.assert_awaited_with(ANY, 1)
+        mock_with_spec.assert_any_await(ANY, 1)
+
     def test_assert_has_awaits_ordered(self):
         calls = [call('NormalFoo'), call('baz')]
         with self.assertRaises(AssertionError):
index 49fffa38439fea14e296398edcb471315a71c63e..8a954095051cde06baf74374f1bba9b9832a19fa 100644 (file)
@@ -63,20 +63,29 @@ class AnyTest(unittest.TestCase):
             ]
             self.assertEqual(expected, mock.mock_calls)
             self.assertEqual(mock.mock_calls, expected)
-            mock.assert_has_calls(expected)
 
-    def test_assert_has_calls_with_any_and_spec_set(self):
+    def test_any_no_spec(self):
         # This is a regression test for bpo-37555
-        class Foo(object):
+        class Foo:
             def __eq__(self, other): pass
-            def __ne__(self, other): pass
 
-        mock = Mock(spec_set=Foo)
-        expected = [call(ANY)]
-        mock(Foo())
+        mock = Mock()
+        mock(Foo(), 1)
+        mock.assert_has_calls([call(ANY, 1)])
+        mock.assert_called_with(ANY, 1)
+        mock.assert_any_call(ANY, 1)
+
+    def test_any_and_spec_set(self):
+        # This is a regression test for bpo-37555
+        class Foo:
+            def __eq__(self, other): pass
 
-        mock.assert_has_calls(expected)
+        mock = Mock(spec=Foo)
 
+        mock(Foo(), 1)
+        mock.assert_has_calls([call(ANY, 1)])
+        mock.assert_called_with(ANY, 1)
+        mock.assert_any_call(ANY, 1)
 
 class CallTest(unittest.TestCase):