def test_drive_closes_writer_upon_reader_exception(self): eventlogging.reads('fail-at-third-yield')(fail_at_third_yield) list_writer_stub = ListWriterStub() eventlogging.writes('echo-writer')(list_writer_stub.get_writer()) try: eventlogging.drive('fail-at-third-yield://', 'echo-writer://') self.fail("No exception got thrown") except RuntimeError as e: self.assertEqual(list_writer_stub.values, ["yield #1", "yield #2"], "Yielded elements do not match") self.assertEqual(str(e), "@yield #3", "Unknown RuntimeError raised") self.assertTrue(list_writer_stub.is_writer_closed, "Writer has not been closed") finally: eventlogging.factory._writers.pop('echo-writer') eventlogging.factory._readers.pop('fail-at-third-yield')
def setUp(self): """Register test handlers.""" eventlogging.writes('test')(echo_writer) eventlogging.reads('test')(repeater)