Skip to content

Commit

Permalink
Merge pull request #1679 from doadin/patch-3
Browse files Browse the repository at this point in the history
Author: doadin
Reviewer: adiroiban
Fixes: ticket: 9660

twisted.internet.gireactor.PortableGIReactor.simulate and twisted.internet.gtk2reactor.PortableGtkReactor.simulate no longer raises TypeError when there are no delayed called. This was a regression introduced with the migration to Python3 in which the builtin `min` function no longer accepts `None` as an argument.
  • Loading branch information
adiroiban committed Feb 8, 2022
2 parents fd2434d + e37374a commit 9045ef7
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/twisted/internet/_glibbase.py
Expand Up @@ -354,8 +354,8 @@ def simulate(self):
if self._simtag is not None:
self._source_remove(self._simtag)
self.iterate()
timeout = min(self.timeout(), 0.01)
if timeout is None:
timeout = self.timeout()
if timeout is None or timeout > 0.01:
timeout = 0.01
self._simtag = self._timeout_add(
int(timeout * 1000),
Expand Down
33 changes: 33 additions & 0 deletions src/twisted/internet/test/test_glibbase.py
Expand Up @@ -65,3 +65,36 @@ def test_ensureFailsWhenImported(self):
)
self.assertEqual(modules, {"m2": module})
self.assertEqual(e.args, ("A message.",))


try:
from twisted.internet import gireactor as _gireactor
except ImportError:
gireactor = None
else:
gireactor = _gireactor

missingGlibReactor = None
if gireactor is None:
missingGlibReactor = "gi reactor not available"


class GlibReactorBaseTests(TestCase):
"""
Tests for the private C{twisted.internet._glibbase.GlibReactorBase}
done via the public C{twisted.internet.gireactor.PortableGIReactor}
"""

skip = missingGlibReactor

def test_simulate(self):
"""
C{simulate} can be called without raising any errors when there are
no delayed calls for the reactor and hence there is no defined sleep
period.
"""
sut = gireactor.PortableGIReactor(usegtk=False)
# Double check that reactor has no sleep period.
self.assertIs(None, sut.timeout())

sut.simulate()
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9660.bugfix
@@ -0,0 +1 @@
twisted.internet.gireactor.PortableGIReactor.simulate and twisted.internet.gtk2reactor.PortableGtkReactor.simulate no longer raises TypeError when there are no delayed called. This was a regression introduced with the migration to Python3 in which the builtin `min` function no longer accepts `None` as an argument.

0 comments on commit 9045ef7

Please sign in to comment.