from nose2 import result, session
from nose2.tests._common import TestCase


class TestPluggableTestResult(TestCase):

    def setUp(self):
        self.session = session.Session()
        self.result = result.PluggableTestResult(self.session)

    def test_skip_reason_not_discarded(self):
        class Test(TestCase):

            def test(self):
                pass
        plugin = FakePlugin()
        self.session.hooks.register('testOutcome', plugin)
        self.result.addSkip(Test('test'), 'because')
        self.assertEqual(plugin.reason, 'because')


class FakePlugin(object):

    def testOutcome(self, event):
        self.reason = event.reason