Пример #1
0
 def make_factory(self, rpc_service=None):
     listener = FakePostgresListenerService()
     factory = WebSocketFactory(listener)
     if rpc_service is None:
         rpc_service = MagicMock()
     self.patch(services, "getServiceNamed").return_value = rpc_service
     return factory
Пример #2
0
 def make_webapp(self):
     listener = FakePostgresListenerService()
     service = webapp.WebApplicationService(0, listener,
                                            sentinel.status_worker)
     mock_makeEndpoint = self.patch(service, "_makeEndpoint")
     mock_makeEndpoint.return_value = TCP4ServerEndpoint(
         reactor, 0, interface="localhost")
     return service
Пример #3
0
 def make_webapp(self):
     listener = FakePostgresListenerService()
     service_endpoint = self.make_endpoint()
     service = webapp.WebApplicationService(
         service_endpoint, listener, sentinel.status_worker)
     # Patch the getServiceNamed so the WebSocketFactory does not
     # error trying to register for events from the RPC service. In this
     # test the RPC service is not started.
     self.patch(eventloop.services, "getServiceNamed")
     return service
Пример #4
0
 def test_make_WebApplicationService(self):
     service = eventloop.make_WebApplicationService(
         FakePostgresListenerService(), sentinel.status_worker)
     self.assertThat(service, IsInstance(webapp.WebApplicationService))
     # The port is set to port 5243 on localhost.
     self.assertThat(service.port, Equals(DEFAULT_PORT))
     # It is registered as a factory in RegionEventLoop.
     self.assertIs(eventloop.make_WebApplicationService,
                   eventloop.loop.factories["web"]["factory"])
     # Has a dependency of postgres-listener.
     self.assertEquals(["postgres-listener-worker", "status-worker"],
                       eventloop.loop.factories["web"]["requires"])
     self.assertFalse(eventloop.loop.factories["web"]["only_on_master"])
Пример #5
0
 def make_protocol(self, patch_authenticate=True, transport_uri=''):
     listener = FakePostgresListenerService()
     factory = WebSocketFactory(listener)
     self.patch(factory, "registerRPCEvents")
     self.patch(factory, "unregisterRPCEvents")
     factory.startFactory()
     self.addCleanup(factory.stopFactory)
     protocol = factory.buildProtocol(None)
     protocol.transport = MagicMock()
     protocol.transport.cookies = b""
     protocol.transport.uri = transport_uri
     if patch_authenticate:
         self.patch(protocol, "authenticate")
     return protocol, factory
Пример #6
0
 def test_make_RackControllerService(self):
     service = eventloop.make_RackControllerService(
         FakePostgresListenerService(), sentinel.rpc_advertise)
     self.assertThat(service,
                     IsInstance(rack_controller.RackControllerService))
     # It is registered as a factory in RegionEventLoop.
     self.assertIs(eventloop.make_RackControllerService,
                   eventloop.loop.factories["rack-controller"]["factory"])
     # Has a dependency of ipc-worker and postgres-listener.
     self.assertEquals(
         ["ipc-worker", "postgres-listener-worker"],
         eventloop.loop.factories["rack-controller"]["requires"])
     self.assertFalse(
         eventloop.loop.factories["rack-controller"]["only_on_master"])
Пример #7
0
 def test_make_WebApplicationService(self):
     service = eventloop.make_WebApplicationService(
         FakePostgresListenerService(), sentinel.status_worker)
     self.assertThat(service, IsInstance(webapp.WebApplicationService))
     # The endpoint is set to port 5243 on localhost.
     self.assertThat(
         service.endpoint,
         MatchesStructure.byEquality(reactor=reactor,
                                     addressFamily=socket.AF_INET6))
     self.assertThat(service.endpoint.port, Equals(DEFAULT_PORT))
     # IPv6 address is: (host, port, flowinfo, scopeid)
     self.assertThat(service.endpoint.socket.getsockname(),
                     Equals(("::", DEFAULT_PORT, 0, 0)))
     # It is registered as a factory in RegionEventLoop.
     self.assertIs(eventloop.make_WebApplicationService,
                   eventloop.loop.factories["web"]["factory"])
     # Has a dependency of postgres-listener.
     self.assertEquals(["postgres-listener-worker", "status-worker"],
                       eventloop.loop.factories["web"]["requires"])
     self.assertFalse(eventloop.loop.factories["web"]["only_on_master"])
Пример #8
0
 def make_protocol(self, patch_authenticate=True, transport_uri=""):
     listener = FakePostgresListenerService()
     factory = WebSocketFactory(listener)
     self.patch(factory, "registerRPCEvents")
     self.patch(factory, "unregisterRPCEvents")
     factory.startFactory()
     self.addCleanup(factory.stopFactory)
     protocol = factory.buildProtocol(None)
     protocol.transport = MagicMock()
     protocol.transport.cookies = b""
     protocol.transport.uri = transport_uri
     protocol.transport.host = random.choice([
         maastesting_factory.make_ipv4_address() +
         ":%d" % maastesting_factory.pick_port(),
         "[" + maastesting_factory.make_ipv6_address() +
         "]:%d" % maastesting_factory.pick_port(),
     ])
     protocol.request = HttpRequest()
     if patch_authenticate:
         self.patch(protocol, "authenticate")
     return protocol, factory