select: Python 2.x required __nonzero__ for bool(Select)

This commit is contained in:
David Wilson 2018-12-11 23:16:16 +00:00
parent d030decf57
commit 6fafc0a631
2 changed files with 18 additions and 0 deletions

View File

@ -135,6 +135,8 @@ class Select(object):
"""
return bool(self._receivers)
__nonzero__ = __bool__
def __enter__(self):
return self

View File

@ -6,6 +6,22 @@ import mitogen.select
import testlib
class BoolTest(testlib.RouterMixin, testlib.TestCase):
klass = mitogen.select.Select
def test_receiver(self):
recv = mitogen.core.Receiver(self.router) # oneshot
select = self.klass()
self.assertFalse(select)
select.add(recv)
self.assertTrue(select)
recv._on_receive(mitogen.core.Message.pickled('123'))
self.assertTrue(select)
self.assertEquals('123', select.get().unpickle())
self.assertFalse(select)
class AddTest(testlib.RouterMixin, testlib.TestCase):
klass = mitogen.select.Select