vendredi 20 janvier 2017

'Wildcard' for checking captured log outputs using Python's testfixtures module

I'm writing some unit tests for a server program which catches most exceptions, but logs them, and would like to make assertions on the logged output. I've found the testfixtures package useful to this end; for example:

import logging
import testfixtures

with testfixtures.LogCapture() as l:
    logging.info('Here is some info.')

l.check(('root', 'INFO', 'Here is some info.'))

Following the documentation, the check method will raise an error if either the logger name, level, or message is not as expected.

I would like to perform a more 'flexible' kind of test in which I make assertions on the message using a wildcard for the other elements of the tuple. This less stringent assertion would look something like

l.check((*, *, 'Here is some info.'))

but this is not valid syntax. Is there any way to specify a 'wildcard' in the check method of the testfixtures.logcapture.LogCapture class?

Aucun commentaire:

Enregistrer un commentaire