def test_add_re_route(self): dispatcher = Dispatcher() f = lambda: None dispatcher.route(re='.*')(f) self.assertEqual(f._sp_custom_routes, [re.compile('^.*$')])
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, {}))
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'])