async def setUp(self): self.signal_handler = SSE() handler1 = Mock(return_value=CoroutineMock()) handler2 = Mock(return_value=CoroutineMock()) handler3 = Mock(return_value=CoroutineMock()) self.routes_registry = RoutesRegistry( { handler1: { "type": RouteTypes.SSE, "routes": ["Xablau"], "options": {}, "default_options": {}, }, handler2: { "type": RouteTypes.SSE, "routes": ["Xena", "sse"], "options": MagicMock(), "default_options": {}, }, handler3: { "type": RouteTypes.AMQP_RABBITMQ, "routes": ["invalid route"], "options": MagicMock(), "default_options": {}, }, } )
def test_it_raise_an_error_if_the_route_has_an_invalid_type(self): routes_registry = RoutesRegistry() handler = CoroutineMock() route_data = { "type": "Xablau", "routes": ["/"], "methods": ["POST"], "handler": handler, "default_options": {}, } with self.assertRaises(ValueError): routes_registry[handler] = route_data
def __init__(self) -> None: self.loop = asyncio.get_event_loop() self.routes_registry = RoutesRegistry() self.default_route_options: dict = {} self._state: dict = {} self._frozen = False self._on_startup: Signal = Signal(self) self._on_shutdown: Signal = Signal(self) for handler in self.handlers: self._on_startup.append(handler.startup) self._on_shutdown.append(handler.shutdown) for signal in self.shutdown_os_signals: self.loop.add_signal_handler(signal, self.shutdown)
async def setUp(self): self.signal_handler = HTTPServer() handler1 = Mock(return_value=CoroutineMock()) handler2 = Mock(return_value=CoroutineMock()) self.routes_registry = RoutesRegistry({ handler1: { "type": RouteTypes.HTTP, "routes": ["/xablau"], "methods": ["GET"], }, handler2: { "type": RouteTypes.HTTP, "routes": ["/xena"], "methods": ["GET", "POST"], }, }) self.app = App("localhost", "guest", "guest", 1)
async def setUp(self): self.signal_handler = RabbitMQ() handler1 = Mock(return_value=CoroutineMock()) handler2 = Mock(return_value=CoroutineMock()) self.routes_registry = RoutesRegistry({ handler1: { "type": RouteTypes.AMQP_RABBITMQ, "routes": ["Xablau"], "options": {}, }, handler2: { "type": RouteTypes.AMQP_RABBITMQ, "routes": ["Xena"], "options": {}, "vhost": "k9", }, })
def __init__(self, connections: Optional[Iterable[Connection]] = None) -> None: Freezable.__init__(self) self.loop = asyncio.get_event_loop() self.routes_registry = RoutesRegistry() self.default_route_options: dict = {} self._state: Dict[Any, Any] = self._get_initial_state() self.connections = ConnectionsMapping() if connections: self.connections.add(connections) self._on_startup: Signal = Signal(self) self._on_shutdown: Signal = Signal(self) for handler in self.handlers: self._on_startup.append(handler.startup) self._on_shutdown.append(handler.shutdown) for signal in self.shutdown_os_signals: self.loop.add_signal_handler(signal, self.shutdown)
def setUp(self): self.routes_registry = RoutesRegistry()
class RoutesRegistryTests(TestCase): def setUp(self): self.routes_registry = RoutesRegistry() def test_it_registers_routes(self): handler = CoroutineMock() route = HTTPRoute(routes=["/"], methods=["POST"], handler=handler, default_options={}) self.routes_registry.add_route(route) self.assertEqual(route, self.routes_registry.route_for(handler)) def test_route_for(self): handler = CoroutineMock() route = HTTPRoute(routes=["/"], methods=["POST"], handler=handler, default_options={}) self.routes_registry[handler] = route self.assertEqual(self.routes_registry.route_for(handler), route) def test_it_raise_an_error_if_the_route_has_an_invalid_type(self): routes_registry = RoutesRegistry() handler = CoroutineMock() route_data = { "type": "Xablau", "routes": ["/"], "methods": ["POST"], "handler": handler, "default_options": {}, } with self.assertRaises(ValueError): routes_registry[handler] = route_data def test_it_raises_an_error_if_route_dict_dosnt_have_a_type(self): handler = CoroutineMock() route_data = { "routes": ["/"], "methods": ["POST"], "handler": handler, "default_options": {}, } with self.assertRaises(ValueError): self.routes_registry[handler] = route_data def test_routes_are_subscriptables(self): handler = CoroutineMock() route = HTTPRoute(routes=["/"], methods=["POST"], handler=handler, default_options={}) self.routes_registry.add_route(route) self.assertEqual(route["type"], RouteTypes.HTTP) with self.assertRaises(KeyError): _ = route["Invalid key"] def test_routes_get_method(self): handler = CoroutineMock() route = HTTPRoute(routes=["/"], methods=["POST"], handler=handler, default_options={}) self.routes_registry.add_route(route) self.assertEqual(route.get("type"), RouteTypes.HTTP) self.assertEqual(route.get("Invalid key", "Default"), "Default") def test_register_http_handler(self): route = HTTPRoute(handler=CoroutineMock(), routes=["/foo"], methods=["GET"]) self.routes_registry.add_http_route(route) self.assertEqual(len(self.routes_registry.http_routes), 1) self.assertEqual(self.routes_registry.http_routes[0], route) def test_register_amqp_handler(self): route = AMQPRoute( handler=CoroutineMock(), routes=["queue1", "queue2"], options=AMQPRouteOptions(), ) self.routes_registry.add_amqp_route(route) self.assertEqual(len(self.routes_registry.amqp_routes), 1) self.assertEqual(self.routes_registry.amqp_routes[0], route)