Skip to content

Commit

Permalink
gh-106458: Mark testthreadingmock.py with `@requires_working_thread…
Browse files Browse the repository at this point in the history
…ing` (GH-106366)

Mark `testthreadingmock.py` with `threading_helper.requires_working_threading`.

Also add longer delays to reduce the change of a race conditions on the tests that validate short timeouts.
  • Loading branch information
mariocj89 committed Jul 6, 2023
1 parent e7cd557 commit 56353b1
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions Lib/test/test_unittest/testmock/testthreadingmock.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@
import unittest
import concurrent.futures

from test.support import threading_helper
from unittest.mock import patch, ThreadingMock, call


threading_helper.requires_working_threading(module=True)


class Something:
def method_1(self):
pass
Expand Down Expand Up @@ -133,11 +137,9 @@ def test_wait_failed_with_timeout_override(self):

with patch(f"{__name__}.Something", waitable_mock):
something = Something()
self.run_async(something.method_1, delay=0.1)
self.run_async(something.method_1, delay=0.5)
with self.assertRaises(AssertionError):
something.method_1.wait_until_called(timeout=0.05)
with self.assertRaises(AssertionError):
something.method_1.wait_until_any_call_with(timeout=0.05)

def test_wait_success_called_before(self):
waitable_mock = self._make_mock()
Expand All @@ -163,10 +165,10 @@ def test_wait_until_any_call_with_positional(self):

with patch(f"{__name__}.Something", waitable_mock):
something = Something()
self.run_async(something.method_1, 1, delay=0.1)
self.run_async(something.method_1, 2, delay=0.2)
self.run_async(something.method_1, 3, delay=0.3)
self.run_async(something.method_1, 1, delay=0.2)
self.assertNotIn(call(1), something.method_1.mock_calls)
self.run_async(something.method_1, 2, delay=0.5)
self.run_async(something.method_1, 3, delay=0.6)

something.method_1.wait_until_any_call_with(1)
something.method_1.assert_called_with(1)
Expand All @@ -182,10 +184,10 @@ def test_wait_until_any_call_with_keywords(self):

with patch(f"{__name__}.Something", waitable_mock):
something = Something()
self.run_async(something.method_1, a=1, delay=0.1)
self.run_async(something.method_1, b=2, delay=0.2)
self.run_async(something.method_1, c=3, delay=0.3)
self.run_async(something.method_1, a=1, delay=0.2)
self.assertNotIn(call(a=1), something.method_1.mock_calls)
self.run_async(something.method_1, b=2, delay=0.5)
self.run_async(something.method_1, c=3, delay=0.6)

something.method_1.wait_until_any_call_with(a=1)
something.method_1.assert_called_with(a=1)
Expand Down

0 comments on commit 56353b1

Please sign in to comment.