diff options
Diffstat (limited to 'Lib/test/test_asyncore.py')
| -rw-r--r-- | Lib/test/test_asyncore.py | 65 |
1 files changed, 23 insertions, 42 deletions
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index 72de850..ce835aa 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -115,12 +115,24 @@ class HelperFunctionTests(unittest.TestCase): def test_readwrite(self): # Check that correct methods are called by readwrite() + attributes = ('read', 'expt', 'write', 'closed', 'error_handled') + + expected = ( + (select.POLLIN, 'read'), + (select.POLLPRI, 'expt'), + (select.POLLOUT, 'write'), + (select.POLLERR, 'closed'), + (select.POLLHUP, 'closed'), + (select.POLLNVAL, 'closed'), + ) + class testobj: def __init__(self): self.read = False self.write = False self.closed = False self.expt = False + self.error_handled = False def handle_read_event(self): self.read = True @@ -137,54 +149,25 @@ class HelperFunctionTests(unittest.TestCase): def handle_error(self): self.error_handled = True - for flag in (select.POLLIN, select.POLLPRI): + for flag, expectedattr in expected: tobj = testobj() - self.assertEqual(tobj.read, False) + self.assertEqual(getattr(tobj, expectedattr), False) asyncore.readwrite(tobj, flag) - self.assertEqual(tobj.read, True) - - # check that ExitNow exceptions in the object handler method - # bubbles all the way up through asyncore readwrite call - tr1 = exitingdummy() - self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag) - - # check that an exception other than ExitNow in the object handler - # method causes the handle_error method to get called - tr2 = crashingdummy() - asyncore.readwrite(tr2, flag) - self.assertEqual(tr2.error_handled, True) - - tobj = testobj() - self.assertEqual(tobj.write, False) - asyncore.readwrite(tobj, select.POLLOUT) - self.assertEqual(tobj.write, True) - - # check that ExitNow exceptions in the object handler method - # bubbles all the way up through asyncore readwrite call - tr1 = exitingdummy() - self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, - select.POLLOUT) - # check that an exception other than ExitNow in the object handler - # method causes the handle_error method to get called - tr2 = crashingdummy() - asyncore.readwrite(tr2, select.POLLOUT) - self.assertEqual(tr2.error_handled, True) - - for flag in (select.POLLERR, select.POLLHUP, select.POLLNVAL): - tobj = testobj() - self.assertEqual((tobj.expt, tobj.closed)[flag == select.POLLHUP], False) - asyncore.readwrite(tobj, flag) - self.assertEqual((tobj.expt, tobj.closed)[flag == select.POLLHUP], True) + # Only the attribute modified by the routine we expect to be + # called should be True. + for attr in attributes: + self.assertEqual(getattr(tobj, attr), attr==expectedattr) # check that ExitNow exceptions in the object handler method - # bubbles all the way up through asyncore readwrite calls + # bubbles all the way up through asyncore readwrite call tr1 = exitingdummy() self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag) # check that an exception other than ExitNow in the object handler # method causes the handle_error method to get called tr2 = crashingdummy() + self.assertEqual(tr2.error_handled, False) asyncore.readwrite(tr2, flag) self.assertEqual(tr2.error_handled, True) @@ -289,15 +272,13 @@ class DispatcherTests(unittest.TestCase): sys.stdout = stdout lines = fp.getvalue().splitlines() - if __debug__: - expected = ['EGGS: %s' % l1, 'info: %s' % l2, 'SPAM: %s' % l3] - else: - expected = ['EGGS: %s' % l1, 'SPAM: %s' % l3] + expected = ['EGGS: %s' % l1, 'info: %s' % l2, 'SPAM: %s' % l3] self.assertEquals(lines, expected) def test_unhandled(self): d = asyncore.dispatcher() + d.ignore_log_types = () # capture output of dispatcher.log_info() (to stdout via print) fp = StringIO() @@ -313,7 +294,7 @@ class DispatcherTests(unittest.TestCase): sys.stdout = stdout lines = fp.getvalue().splitlines() - expected = ['warning: unhandled exception', + expected = ['warning: unhandled incoming priority event', 'warning: unhandled read event', 'warning: unhandled write event', 'warning: unhandled connect event', |
