示例#1
0
    def test__build_router_rules(self):
        service1 = Service('service1', [])
        service2 = Service('service2', [])

        router = ServicesRouter('path')
        router.add_service(service1)
        router.add_service(service2)
        router._build_router_rules()

        self.assertEqual(len(router.http_router_rules), 2)
        self.assertEqual(router.http_router_rules[0].matcher._path,
                         '/{}/.*'.format(service1.path))
        self.assertEqual(router.http_router_rules[0].target,
                         service1.http_router)
        self.assertEqual(router.http_router_rules[1].matcher._path,
                         '/{}/.*'.format(service2.path))
        self.assertEqual(router.http_router_rules[1].target,
                         service2.http_router)

        self.assertEqual(len(router.websocket_router_rules), 2)
        self.assertEqual(router.websocket_router_rules[0].matcher._path,
                         '/{}/.*'.format(service1.path))
        self.assertEqual(router.websocket_router_rules[0].target,
                         service1.http_router)
        self.assertEqual(router.websocket_router_rules[1].matcher._path,
                         '/{}/.*'.format(service2.path))
        self.assertEqual(router.websocket_router_rules[1].target,
                         service2.http_router)

        self.assertTrue(isinstance(router.http_router, RuleRouter))
        self.assertTrue(isinstance(router.websocket_router, RuleRouter))
示例#2
0
    def test_init_with_services(self):
        service1 = Service('service1', [])
        service2 = Service('service2', [])

        router = ServicesRouter('path', [service1, service2])

        self.assertEqual(len(router.services), 2)
示例#3
0
    def test__build_routers(self):
        service1 = Service('service1', [])
        service2 = Service('service2', [])

        router = ServicesRouter('path')
        router.add_service(service1)
        router.add_service(service2)
        router._build_routers()

        self.assertTrue(isinstance(router.http_router, RuleRouter))
        self.assertTrue(isinstance(router.websocket_router, RuleRouter))
示例#4
0
    def test_get_service(self):
        router = ServicesRouter('path')
        service1 = Service('service1', [])

        router.add_service(service1)
        service1_get = router.get_service(service1.name)
        self.assertEqual(service1, service1_get)
示例#5
0
    def test_add_service(self):
        router = ServicesRouter('path')
        service1 = Service('service1', [])

        router.add_service(service1)

        self.assertEqual(len(router.services), 1)
        self.assertEqual(router.services[service1.name], service1)
示例#6
0
    def test_add_service_already_registered(self):
        router = ServicesRouter('path')
        service1 = Service('service1', [])

        router.add_service(service1)

        with self.assertRaises(ValueError):
            router.add_service(service1)
示例#7
0
 def test_websocket_router_rules(self):
     service1 = Service('service1', [])
     router = ServicesRouter('path', [service1])
     self.assertEqual(len(router.websocket_router_rules), 1)
     self.assertTrue(isinstance(router.websocket_router_rules[0], Rule))
示例#8
0
    def test_remove_service(self):
        service1 = Service('service1', [])
        router = ServicesRouter('path', [service1])

        router.remove_service(service1.name)
        self.assertEqual(len(router.services), 0)