2015-12-19 00:11:57 +00:00
|
|
|
import sys
|
|
|
|
import unittest
|
|
|
|
import argparse
|
|
|
|
import unittest
|
|
|
|
import functools
|
|
|
|
import importlib
|
|
|
|
from .cases import _IrcTestCase
|
2015-12-20 10:26:30 +00:00
|
|
|
from .optional_extensions import OptionalityReportingTextTestRunner
|
2015-12-19 00:11:57 +00:00
|
|
|
from .basecontrollers import BaseClientController, BaseServerController
|
|
|
|
|
|
|
|
def main(args):
|
|
|
|
try:
|
|
|
|
module = importlib.import_module(args.module)
|
|
|
|
except ImportError:
|
|
|
|
print('Cannot import module {}'.format(args.module), file=sys.stderr)
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
controller_class = module.get_irctest_controller_class()
|
|
|
|
if issubclass(controller_class, BaseClientController):
|
2015-12-20 10:07:04 +00:00
|
|
|
import irctest.client_tests as module
|
2015-12-19 22:09:06 +00:00
|
|
|
elif issubclass(controller_class, BaseServerController):
|
2015-12-20 10:07:04 +00:00
|
|
|
import irctest.server_tests as module
|
2015-12-20 03:58:08 +00:00
|
|
|
_IrcTestCase.server_start_delay = args.server_start_delay
|
2015-12-19 00:11:57 +00:00
|
|
|
else:
|
2015-12-19 22:09:06 +00:00
|
|
|
print(r'{}.Controller should be a subclass of '
|
|
|
|
r'irctest.basecontroller.Base{{Client,Server}}Controller'
|
2015-12-19 00:11:57 +00:00
|
|
|
.format(args.module),
|
|
|
|
file=sys.stderr)
|
|
|
|
exit(1)
|
|
|
|
_IrcTestCase.controllerClass = controller_class
|
2015-12-19 08:30:50 +00:00
|
|
|
_IrcTestCase.show_io = args.show_io
|
2015-12-20 10:07:04 +00:00
|
|
|
ts = module.discover()
|
2015-12-20 10:26:30 +00:00
|
|
|
testRunner = OptionalityReportingTextTestRunner()
|
2015-12-20 10:07:04 +00:00
|
|
|
testLoader = unittest.loader.defaultTestLoader
|
|
|
|
testRunner.run(ts)
|
2015-12-19 00:11:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
parser = argparse.ArgumentParser(
|
|
|
|
description='A script to test interoperability of IRC software.')
|
|
|
|
parser.add_argument('module', type=str,
|
|
|
|
help='The module used to run the tested program.')
|
2015-12-19 08:30:50 +00:00
|
|
|
parser.add_argument('--show-io', action='store_true',
|
|
|
|
help='Show input/outputs with the tested program.')
|
2015-12-20 03:58:08 +00:00
|
|
|
parser.add_argument('--server-start-delay', type=float, default=None,
|
|
|
|
help='Number of seconds to wait before querying a server.')
|
|
|
|
|
2015-12-19 00:11:57 +00:00
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
main(args)
|