示例#1
0
    def test_connect(self):
        client = self.client._get_server()
        self.client._get_server = lambda: client

        # Already connected
        client.transport = _MockTransport()
        client.transport.isOpen = lambda: True
        self.assert_(self.client._connect())

        # Not connected, no error
        nopens = client.transport.calls['open']
        with save(client.transport, ('isOpen',)):
            client.transport.isOpen = lambda: False
            self.assert_(self.client._connect())
            self.assert_(client.transport.calls['open'] == nopens + 1)

        # Thrift Exception on connect - trapped
        ncloses = client.transport.calls['close']
        with save(client.transport, ('isOpen', 'open')):
            client.transport.isOpen = lambda: False
            client.transport.open = raises(TTransportException)
            self.assertRaises(ErrorThriftMessage, self.client._connect)
            self.assert_(client.transport.calls['close'] == ncloses +1)

        # Other exception on connect should be ignored
        with save(client.transport, ('isOpen', 'open')):
            client.transport.isOpen = lambda: False
            client.transport.open = raises(Exception)
            ncloses = client.transport.calls['close']
            self.assertRaises(Exception, self.client._connect)

        # Connection recycling - reuse same connection
        nopens = client.transport.calls['open']
        ncloses = client.transport.calls['close']
        conn = self.client._connect()
        self.client._recycle = 60
        client.connect_time = time.time()
        self.assert_(conn is self.client._connect())
        self.assert_(client.transport.calls['open'] == nopens)
        self.assert_(client.transport.calls['open'] == ncloses)

        # Recycling - reconnect
        nopens = client.transport.calls['open']
        ncloses = client.transport.calls['close']
        conn = self.client._connect()
        self.client._recycle = 60
        client.connect_time = 0
        self.assert_(conn is self.client._connect())
        self.assert_(client.transport.calls['open'] == nopens + 1)
        self.assert_(client.transport.calls['close'] == ncloses + 1)
示例#2
0
    def test_connect(self):
        client = self.client._get_server()
        self.client._get_server = lambda: client

        # Already connected
        client.transport = _MockTransport()
        client.transport.isOpen = lambda: True
        self.assert_(self.client._connect())

        # Not connected, no error
        nopens = client.transport.calls['open']
        with save(client.transport, ('isOpen', )):
            client.transport.isOpen = lambda: False
            self.assert_(self.client._connect())
            self.assert_(client.transport.calls['open'] == nopens + 1)

        # Thrift Exception on connect - trapped
        ncloses = client.transport.calls['close']
        with save(client.transport, ('isOpen', 'open')):
            client.transport.isOpen = lambda: False
            client.transport.open = raises(TTransportException)
            self.assertRaises(ErrorThriftMessage, self.client._connect)
            self.assert_(client.transport.calls['close'] == ncloses + 1)

        # Other exception on connect should be ignored
        with save(client.transport, ('isOpen', 'open')):
            client.transport.isOpen = lambda: False
            client.transport.open = raises(Exception)
            ncloses = client.transport.calls['close']
            self.assertRaises(Exception, self.client._connect)

        # Connection recycling - reuse same connection
        nopens = client.transport.calls['open']
        ncloses = client.transport.calls['close']
        conn = self.client._connect()
        self.client._recycle = 60
        client.connect_time = time.time()
        self.assert_(conn is self.client._connect())
        self.assert_(client.transport.calls['open'] == nopens)
        self.assert_(client.transport.calls['open'] == ncloses)

        # Recycling - reconnect
        nopens = client.transport.calls['open']
        ncloses = client.transport.calls['close']
        conn = self.client._connect()
        self.client._recycle = 60
        client.connect_time = 0
        self.assert_(conn is self.client._connect())
        self.assert_(client.transport.calls['open'] == nopens + 1)
        self.assert_(client.transport.calls['close'] == ncloses + 1)
示例#3
0
 def test_remove_key(self):
     """Test remove_key."""
     client = MockClient(['localhost:1234'])
     key = Key("123", "456")
     with save(lazyboy.record, ('get_pool',)):
         lazyboy.record.get_pool = lambda keyspace: client
         Record.remove_key(key)
示例#4
0
 def test_remove_key(self):
     """Test remove_key."""
     client = MockClient('eggs', ['localhost:1234'])
     key = Key("123", "456")
     with save(lazyboy.record, ('get_pool', )):
         lazyboy.record.get_pool = lambda keyspace: client
         Record.remove_key(key)
示例#5
0
 def test_init(self):
     with save(conn.DebugTraceClient, ("__metaclass__",)):
         del conn.DebugTraceClient.__metaclass__
         logger = logging.getLogger("TestCase")
         client = conn.DebugTraceClient(None, slow_thresh=150, log=logger)
         self.assert_(isinstance(client, Cassandra.Client))
         self.assert_(hasattr(client, "log"))
         self.assert_(isinstance(client.log, logging.Logger))
         self.assert_(client.log is logger)
         self.assert_(hasattr(client, "_slow_thresh"))
         self.assert_(client._slow_thresh == 150)
示例#6
0
 def test_init(self):
     with save(conn.DebugTraceClient, ('__metaclass__', )):
         del conn.DebugTraceClient.__metaclass__
         logger = logging.getLogger("TestCase")
         client = conn.DebugTraceClient(None, slow_thresh=150, log=logger)
         self.assert_(isinstance(client, Cassandra.Client))
         self.assert_(hasattr(client, 'log'))
         self.assert_(isinstance(client.log, logging.Logger))
         self.assert_(client.log is logger)
         self.assert_(hasattr(client, '_slow_thresh'))
         self.assert_(client._slow_thresh == 150)
示例#7
0
    def test_build_server(self):

        exc_classes = (InvalidRequestException, UnavailableException, Thrift.TException)

        cls = Cassandra.Client
        srv = self.client._build_server(cls, "localhost", 1234)
        self.assert_(isinstance(srv, Cassandra.Client))

        self.client._timeout = 250
        srv = self.client._build_server(cls, "localhost", 1234)
        self.assert_(srv._iprot.trans._TBufferedTransport__trans._timeout == self.client._timeout * 0.001)
        self.assert_(isinstance(srv, Cassandra.Client))

        with save(conn.TSocket, ("TSocket",)):
            for exc_class in exc_classes:
                conn.TSocket.TSocket = raises(exc_class)
                self.assert_(self.client._build_server(cls, "localhost", 1234) is None)
示例#8
0
    def test_build_server(self):

        exc_classes = (InvalidRequestException, UnavailableException,
                       Thrift.TException)

        cls = Cassandra.Client
        srv = self.client._build_server(cls, 'localhost', 1234)
        self.assert_(isinstance(srv, Cassandra.Client))

        self.client._timeout = 250
        srv = self.client._build_server(cls, 'localhost', 1234)
        self.assert_(srv._iprot.trans._TFramedTransport__trans._timeout ==
                     self.client._timeout * .001)
        self.assert_(isinstance(srv, Cassandra.Client))

        with save(conn.TSocket, ('TSocket', )):
            for exc_class in exc_classes:
                conn.TSocket.TSocket = raises(exc_class)
                self.assert_(
                    self.client._build_server(cls, 'localhost', 1234) is None)