'The C{\'wsgi.errors\'} key of the C{environ} C{dict} passed to the
application is a file-like object (as defined in the U{Input and Errors
Streams<http://www.python.org/dev/peps/pep-0333/#input-and-error-streams>}
section of PEP 333) which converts bytes written to it into events for
the logging system.'

def test_wsgiErrors(self):

    events = []
    addObserver(events.append)
    self.addCleanup(removeObserver, events.append)
    errors = self.render('GET', '1.1', [], [''])
    def cbErrors(result):
        (environ, startApplication) = result
        errors = environ['wsgi.errors']
        errors.write('some    message\n')
        errors.writelines(['another\nmessage\n'])
        errors.flush()
        self.assertEqual(events[0]['message'], ('some    message\n',))
        self.assertEqual(events[0]['system'], 'wsgi')
        self.assertTrue(events[0]['isError'])
        self.assertEqual(events[1]['message'], ('another\nmessage\n',))
        self.assertEqual(events[1]['system'], 'wsgi')
        self.assertTrue(events[1]['isError'])
        self.assertEqual(len(events), 2)
    errors.addCallback(cbErrors)
    return errors
