mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 15:40:01 -06:00
c47f3154be
Logs from Beaker jobs are normally very brief, with the standard output/error containing detailed information. Make ipa-run-tests with BeakerLib plugin follow this convention. Only include INFO and higher level messages in the Beaker logs. Downgrade several message levels to DEBUG. Log to console using Python logging instead of showing the Beaker logs. Since ipa-run-tests sets up its own logging, Nose's own log handling just causes duplicate messages. Disable it with --nologcapture.
82 lines
2.4 KiB
Python
Executable File
82 lines
2.4 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
# Authors:
|
|
# Petr Viktorin <pviktori@redhat.com>
|
|
# Jason Gerard DeRose <jderose@redhat.com>
|
|
#
|
|
# Copyright (C) 2008-2013 Red Hat
|
|
# see file 'COPYING' for use and warranty information
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
"""Nose wrapper for running an installed (not in-tree) IPA test suite
|
|
|
|
Any command-line arguments are passed directly to Nose.
|
|
Note that any relative paths given will be based on the ipatests module's path
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
from os import path
|
|
import logging
|
|
|
|
import nose
|
|
|
|
from ipapython.ipa_log_manager import log_mgr
|
|
import ipatests
|
|
from ipatests.beakerlib_plugin import BeakerLibPlugin
|
|
from ipatests.order_plugin import OrderTests
|
|
|
|
cmd = [
|
|
sys.argv[0],
|
|
'--with-doctest',
|
|
'--doctest-tests',
|
|
'--with-ordered-tests',
|
|
'--exclude=plugins',
|
|
'--nologcapture',
|
|
'--logging-filter=-paramiko',
|
|
'--where', os.path.dirname(ipatests.__file__),
|
|
]
|
|
cmd += sys.argv[1:]
|
|
|
|
|
|
# This must be set so ipalib.api gets initialized property for tests:
|
|
os.environ['IPA_UNIT_TEST_MODE'] = 'cli_test'
|
|
|
|
|
|
# Forward IPA logging to a normal Python logger. Nose's logcapture plugin
|
|
# can't work with IPA-managed loggers
|
|
class LogHandler(logging.Handler):
|
|
name = 'forwarding log handler'
|
|
logger = logging.getLogger('IPA')
|
|
|
|
def emit(self, record):
|
|
self.logger.log(record.levelno, self.format(record))
|
|
|
|
if 'console' in log_mgr.handlers:
|
|
log_mgr.remove_handler('console')
|
|
log_mgr.configure(
|
|
{
|
|
'default_level': 'DEBUG',
|
|
'handlers': [{'log_handler': LogHandler(),
|
|
'format': '[%(name)s] %(message)s',
|
|
'level': 'debug'},
|
|
{'level': 'debug',
|
|
'name': 'console',
|
|
'stream': sys.stderr}]},
|
|
configure_state='tests')
|
|
|
|
|
|
nose.main(argv=cmd, addplugins=[BeakerLibPlugin(), OrderTests()])
|