Merge branch 'enable-debug-on-run-tests' into 'master'

run_tests: add a command-line option to enable debug logs

See merge request poezio/slixmpp!136
This commit is contained in:
mathieui 2021-02-20 11:58:30 +01:00
commit 35a9526a4c
2 changed files with 22 additions and 6 deletions

View File

@ -10,7 +10,7 @@ from importlib import import_module
from pathlib import Path from pathlib import Path
def run_tests(filenames=None): def run_tests(filenames=None, debug=False):
""" """
Find and run all tests in the tests/ directory. Find and run all tests in the tests/ directory.
@ -31,9 +31,12 @@ def run_tests(filenames=None):
tests = unittest.TestSuite(suites) tests = unittest.TestSuite(suites)
runner = unittest.TextTestRunner(verbosity=2) runner = unittest.TextTestRunner(verbosity=2)
# Disable logging output if debug:
logging.basicConfig(level=100) logging.basicConfig(level='DEBUG')
logging.disable(100) else:
# Disable logging output
logging.basicConfig(level=100)
logging.disable(100)
result = runner.run(tests) result = runner.run(tests)
return result return result
@ -58,9 +61,10 @@ class TestCommand(Command):
if __name__ == '__main__': if __name__ == '__main__':
parser = ArgumentParser(description='Run unit tests.') parser = ArgumentParser(description='Run unit tests.')
parser.add_argument('tests', metavar='TEST', nargs='*', help='list of tests to run, or nothing to run them all') parser.add_argument('tests', metavar='TEST', nargs='*', help='list of tests to run, or nothing to run them all')
parser.add_argument('-d', '--debug', action='store_true', dest='debug', default=False, help='enable debug output')
args = parser.parse_args() args = parser.parse_args()
result = run_tests(args.tests) result = run_tests(args.tests, args.debug)
print("<tests %s ran='%s' errors='%s' fails='%s' success='%s'/>" % ( print("<tests %s ran='%s' errors='%s' fails='%s' success='%s'/>" % (
"xmlns='http//andyet.net/protocol/tests'", "xmlns='http//andyet.net/protocol/tests'",
result.testsRun, len(result.errors), result.testsRun, len(result.errors),

View File

@ -434,7 +434,9 @@ class SlixTest(unittest.TestCase):
timeout -- Time to wait in seconds for data to be received by timeout -- Time to wait in seconds for data to be received by
a live connection. a live connection.
""" """
self.wait_()
self.xmpp.data_received(data) self.xmpp.data_received(data)
self.wait_()
def recv_header(self, sto='', def recv_header(self, sto='',
sfrom='', sfrom='',
@ -623,10 +625,20 @@ class SlixTest(unittest.TestCase):
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
future = asyncio.ensure_future(self.xmpp.run_filters(), loop=loop) future = asyncio.ensure_future(self.xmpp.run_filters(), loop=loop)
queue = self.xmpp.waiting_queue queue = self.xmpp.waiting_queue
print(queue)
loop.run_until_complete(queue.join()) loop.run_until_complete(queue.join())
future.cancel() future.cancel()
def wait_(self):
async def yield_some():
for i in range(100):
await asyncio.sleep(0)
loop = asyncio.get_event_loop()
loop.run_until_complete(yield_some())
def run_coro(self, coro):
loop = asyncio.get_event_loop()
loop.run_until_complete(coro)
def stream_close(self): def stream_close(self):
""" """
Disconnect the dummy XMPP client. Disconnect the dummy XMPP client.