from nose2 import events, session from nose2.tests._common import TestCase class Example(events.Plugin): commandLineSwitch = ('X', 'xxx', 'triple x') def testOutcome(self, event): pass class TestPluginApi(TestCase): def setUp(self): self.session = session.Session() self.plug = Example(session=self.session) super(TestCase, self).setUp() def test_add_option_adds_option(self): helpt = self.session.argparse.format_help() assert '-X, --xxx' in helpt, \ "commandLineSwitch arg not found in help text: %s" % helpt def test_short_opt_registers_plugin(self): args, argv = self.session.argparse.parse_known_args(['-X']) assert self.plug in self.session.plugins assert self.plug in self.session.hooks.testOutcome.plugins, \ "short opt did not register plugin" def test_long_opt_registers_plugin(self): args, argv = self.session.argparse.parse_known_args(['--xxx']) assert self.plug in self.session.plugins assert self.plug in self.session.hooks.testOutcome.plugins, \ "long opt did not register plugin"