def setUp(self):
        reactor.suggestThreadPoolSize(1)
        connection_string = os.environ.get("SHORTENER_TEST_CONNECTION_STRING",
                                           "sqlite://")

        self.account = 'test-account'
        cfg = {
            'host_domain': 'http://wtxt.io',
            'account': self.account,
            'connection_string': connection_string,
            'graphite_endpoint': 'tcp:www.example.com:80',
            'handlers': [
                {
                    'dump': 'shortener.handlers.dump.Dump'
                },
            ],
        }
        self.pool = HTTPConnectionPool(reactor, persistent=False)
        self.service = ShortenerServiceApp(reactor=reactor, config=cfg)

        self.tr = DisconnectingStringTransport()
        endpoint = StringTransportClientEndpoint(reactor, self.tr)
        self.service.metrics.carbon_client = CarbonClientService(endpoint)
        self.service.metrics.carbon_client.startService()
        yield self.service.metrics.carbon_client.connect_d

        site = Site(self.service.app.resource())
        self.listener = reactor.listenTCP(0, site, interface='localhost')
        self.listener_port = self.listener.getHost().port
        self._drop_tables()
        self.conn = yield self.service.engine.connect()
        self.addCleanup(self.listener.loseConnection)
        self.addCleanup(self.pool.closeCachedConnections)
示例#2
0
class TestCarbonClientService(TestCase):
    timeout = 1

    def setUp(self):
        self.tr = DisconnectingStringTransport()
        endpoint = StringTransportClientEndpoint(reactor, self.tr)
        self.service = CarbonClientService(endpoint)

    @inlineCallbacks
    def test_start_stop(self):
        self.assertEqual(self.service.protocol_instance, None)
        self.service.startService()
        proto = yield self.service.connect_d
        self.assertEqual(self.service.protocol_instance, proto)
        self.assertNotEqual(proto, None)
        yield self.service.stopService()
        self.assertEqual(self.service.protocol_instance, None)

    @inlineCallbacks
    def test_send_metric(self):
        self.service.startService()
        yield self.service.connect_d
        self.assertEqual(self.tr.value(), "")
        self.service.publish_metric("foo", 3, 1394726782)
        self.assertEqual(self.tr.value(), "foo 3 1394726782\n")

    @inlineCallbacks
    def test_send_metric_while_stopped(self):
        self.assertEqual(self.tr.value(), "")
        self.service.publish_metric("foo", 3, 1394726782)
        self.assertEqual(self.tr.value(), "")
        self.service.startService()
        yield self.service.connect_d
        self.assertEqual(self.tr.value(), "foo 3 1394726782\n")
示例#3
0
 def setUp(self):
     self.tr = DisconnectingStringTransport()
     endpoint = StringTransportClientEndpoint(reactor, self.tr)
     self.service = CarbonClientService(endpoint)
class TestCarbonClientService(TestCase):
    timeout = 1

    def setUp(self):
        self.tr = DisconnectingStringTransport()
        endpoint = StringTransportClientEndpoint(reactor, self.tr)
        self.service = CarbonClientService(endpoint)

    @inlineCallbacks
    def test_start_stop(self):
        self.assertEqual(self.service.protocol_instance, None)
        self.service.startService()
        proto = yield self.service.connect_d
        self.assertEqual(self.service.protocol_instance, proto)
        self.assertNotEqual(proto, None)
        yield self.service.stopService()
        self.assertEqual(self.service.protocol_instance, None)

    @inlineCallbacks
    def test_send_metric(self):
        self.service.startService()
        yield self.service.connect_d
        self.assertEqual(self.tr.value(), "")
        self.service.publish_metric("foo", 3, 1394726782)
        self.assertEqual(self.tr.value(), "foo 3 1394726782\n")

    @inlineCallbacks
    def test_send_metric_while_stopped(self):
        self.assertEqual(self.tr.value(), "")
        self.service.publish_metric("foo", 3, 1394726782)
        self.assertEqual(self.tr.value(), "")
        self.service.startService()
        yield self.service.connect_d
        self.assertEqual(self.tr.value(), "foo 3 1394726782\n")
 def setUp(self):
     self.tr = DisconnectingStringTransport()
     endpoint = StringTransportClientEndpoint(reactor, self.tr)
     self.service = CarbonClientService(endpoint)