Example #1
0
    def test_add_re_route(self):
        dispatcher = Dispatcher()
        f = lambda: None

        dispatcher.route(re='.*')(f)

        self.assertEqual(f._sp_custom_routes, [re.compile('^.*$')])
Example #2
0
    def test_route(self):
        dispatcher = Dispatcher()
        f = lambda: None

        dispatcher.route('custom route 1')(f)
        dispatcher.route('custom route 2')(f)

        self.assertEqual(f._sp_custom_routes, ['custom route 1',
                                               'custom route 2'])
Example #3
0
    def test_get(self):
        class C(object):
            _private = 'PRIVATE'
            member1 = lambda: 123
            member2 = lambda: 321

            def __init__(self):
                self.member3 = lambda: '456'
        c = C()
        C.member3 = lambda: 456

        dispatcher = Dispatcher()
        dispatcher.route('custom')(C.member1)
        dispatcher.route(re='cust(?P<digit>\d)m')(C.member1)
        dispatcher.route(re.compile('^(cus)+$'))(C.member1)
        dispatcher.route('_notprivate')(C.member1)
        dispatcher.route('_C__notprivate')(C.member1)

        self.assertEqual(dispatcher.get(c, 'member1'), (c.member1, {}))
        self.assertEqual(dispatcher.get(c, 'custom'), (c.member1, {}))
        self.assertEqual(dispatcher.get(c, 'member2'), (c.member2, {}))
        self.assertEqual(dispatcher.get(c, 'member3'), (c.member3, {}))
        self.assertEqual(dispatcher.get(c, 'non-member', 'DEFAULT'), ('DEFAULT', {}))
        self.assertEqual(dispatcher.get(c, 'cust0m'), (c.member1, {'digit': '0'}))
        self.assertEqual(dispatcher.get(c, 'cust0mMMMM', 'DEFAULT'), ('DEFAULT', {}))
        self.assertEqual(dispatcher.get(c, 'cuscuscus'), (c.member1, {}))
        self.assertEqual(dispatcher.get(c, '_private', 'DEFAULT'), ('DEFAULT', {}))
        self.assertEqual(dispatcher.get(c, '_C__notprivate'), (c.member1, {}))
        self.assertEqual(dispatcher.get(c, '_notprivate'), (c.member1, {}))