Exemple #1
0
    def test_routing_extras(self):
        a = object()
        router = RoutingBase()
        router.get_or_create_routes(a, ('a', ), sub_routes=('b', 'c'))
        self.assertEqual(router.list_all(), [a])

        item = router.get_route_item('a')
        self.assertEqual({'b': a, 'c': a}, item)

        # additional top level route for 'a' with no sub_routes
        b = object()
        item = router.get_or_create_routes(b, ('a', ))
        self.assertEqual(b, item)

        # re-setting existing sub route for 'a' ... returns 'a'
        c = object()
        item = router.get_or_create_routes(c, ('a', ), ('b', ))
        self.assertEqual(a, item)

        # additional route for 'a' with no sub_routes ... should return 'b' from top-level cache
        d = object()
        item = router.get_or_create_routes(d, ('a', ))
        self.assertEqual(b, item)

        # our router now has only two unique items
        self.assertEqual(2, len(router.list_all()))
        self.assertEqual({a, b}, set(router.list_all()))

        # now if we look up an entry we see the items we need to iterate
        # to resolve the sub_routes (the router does not resolve them for us)
        item = router.get_route_item('a')
        self.assertEqual({a, b}, set(list(item.values())))
Exemple #2
0
    def test_route_two_items(self):
        a = 12345
        b = 54321
        router = RoutingBase()
        router.get_or_create_routes(a, ('a', ))
        router.get_or_create_routes(b, ('b', ))
        self.assertEqual(sorted(router.list_all()), sorted([a, b]))

        # index a single item
        item = router.get_route_item('a')
        self.assertIn(a, item.values())

        # index a single item
        item = router.get_route_item('b')
        self.assertIn(b, item.values())
Exemple #3
0
 def test_remove(self):
     a = object()
     router = RoutingBase()
     router.get_or_create_routes(a, ('a', ))
     router.remove_routes(('a', ))
     item = router.get_route_item('a')
     self.assertIsNone(item)
Exemple #4
0
    def test_route_item(self):
        a = object()
        router = RoutingBase()
        router.get_or_create_routes(a, ('a', ))
        self.assertEqual([a], router.list_all())

        # index a single item
        item = router.get_route_item('a')
        self.assertIn(a, item.values())