Пример #1
0
    def test_pool(self):
        listener = StatsLogger()
        pool = ConnectionPool(pool_size=5,
                              max_overflow=5,
                              recycle=10000,
                              prefill=True,
                              pool_timeout=0.1,
                              timeout=1,
                              keyspace='PycassaTestKeyspace',
                              credentials=_credentials,
                              listeners=[listener],
                              use_threadlocal=False)
        conns = []
        for i in range(10):
            conns.append(pool.get())
        assert_equal(listener.stats['created']['success'], 10)
        assert_equal(listener.stats['created']['failure'], 0)
        assert_equal(listener.stats['checked_out'], 10)
        assert_equal(listener.stats['opened'], {'current': 10, 'max': 10})

        # Pool is maxed out now
        assert_raises(NoConnectionAvailable, pool.get)
        assert_equal(listener.stats['created']['success'], 10)
        assert_equal(listener.stats['checked_out'], 10)
        assert_equal(listener.stats['opened'], {'current': 10, 'max': 10})
        assert_equal(listener.stats['at_max'], 1)

        for i in range(0, 5):
            pool.return_conn(conns[i])
        assert_equal(listener.stats['disposed']['success'], 0)
        assert_equal(listener.stats['checked_in'], 5)
        assert_equal(listener.stats['opened'], {'current': 5, 'max': 10})

        for i in range(5, 10):
            pool.return_conn(conns[i])
        assert_equal(listener.stats['disposed']['success'], 5)
        assert_equal(listener.stats['checked_in'], 10)

        conns = []

        # These connections should come from the pool
        for i in range(5):
            conns.append(pool.get())
        assert_equal(listener.stats['created']['success'], 10)
        assert_equal(listener.stats['checked_out'], 15)

        # But these will need to be made
        for i in range(5):
            conns.append(pool.get())
        assert_equal(listener.stats['created']['success'], 15)
        assert_equal(listener.stats['checked_out'], 20)

        assert_equal(listener.stats['disposed']['success'], 5)
        for i in range(10):
            conns[i].return_to_pool()
        assert_equal(listener.stats['checked_in'], 20)
        assert_equal(listener.stats['disposed']['success'], 10)

        assert_raises(InvalidRequestError, conns[0].return_to_pool)
        assert_equal(listener.stats['checked_in'], 20)
        assert_equal(listener.stats['disposed']['success'], 10)

        print "in test:", id(conns[-1])
        assert_raises(InvalidRequestError, conns[-1].return_to_pool)
        assert_equal(listener.stats['checked_in'], 20)
        assert_equal(listener.stats['disposed']['success'], 10)

        pool.dispose()
Пример #2
0
class TestStatsLogger(TestCase):
    def __init__(self, methodName='runTest'):
        super(TestStatsLogger, self).__init__(methodName)

    def setUp(self):
        super(TestStatsLogger, self).setUp()
        self.logger = StatsLogger()

    def test_empty(self):
        assert_equal(self.logger.stats, self.logger._stats)

    def test_connection_created(self):
        self.logger.connection_created({'level': 'info'})
        self.logger.connection_created({'level': 'error'})

        stats = self.logger.stats
        assert_equal(stats['created']['success'], 1)
        assert_equal(stats['created']['failure'], 1)

    def test_connection_checked(self):
        self.logger.connection_checked_out({})
        self.logger.connection_checked_out({})
        self.logger.connection_checked_in({})
        stats = self.logger.stats
        assert_equal(stats['checked_out'], 2)
        assert_equal(stats['checked_in'], 1)
        assert_equal(stats['opened'], {'current': 1, 'max': 2})

    def test_connection_disposed(self):
        self.logger.connection_disposed({'level': 'info'})
        self.logger.connection_disposed({'level': 'error'})

        stats = self.logger.stats
        assert_equal(stats['disposed']['success'], 1)
        assert_equal(stats['disposed']['failure'], 1)

    def test_connection_recycled(self):
        self.logger.connection_recycled({})
        stats = self.logger.stats
        assert_equal(stats['recycled'], 1)

    def test_connection_failed(self):
        self.logger.connection_failed({})
        stats = self.logger.stats
        assert_equal(stats['failed'], 1)

    def test_obtained_server_list(self):
        self.logger.obtained_server_list({})
        stats = self.logger.stats
        assert_equal(stats['list'], 1)

    def test_pool_at_max(self):
        self.logger.pool_at_max({})
        stats = self.logger.stats
        assert_equal(stats['at_max'], 1)
Пример #3
0
 def setUp(self):
     super(TestStatsLogger, self).setUp()
     self.logger = StatsLogger()
Пример #4
0
 def obtained_server_list(self, dic):
     StatsLogger.obtained_server_list(self, dic)
     self.serv_list = dic.get('server_list')
Пример #5
0
 def connection_failed(self, dic):
     StatsLogger.connection_failed(self, dic)
     self.failure_dict = dic
Пример #6
0
 def setUp(self):
     super(TestStatsLogger, self).setUp()
     self.logger = StatsLogger()
Пример #7
0
class TestStatsLogger(TestCase):
    def __init__(self, methodName='runTest'):
        super(TestStatsLogger, self).__init__(methodName)

    def setUp(self):
        super(TestStatsLogger, self).setUp()
        self.logger = StatsLogger()

    def test_empty(self):
        assert_equal(self.logger.stats, self.logger._stats)

    def test_connection_created(self):
        self.logger.connection_created({'level': 'info'})
        self.logger.connection_created({'level': 'error'})

        stats = self.logger.stats
        assert_equal(stats['created']['success'], 1)
        assert_equal(stats['created']['failure'], 1)

    def test_connection_checked(self):
        self.logger.connection_checked_out({})
        self.logger.connection_checked_out({})
        self.logger.connection_checked_in({})
        stats = self.logger.stats
        assert_equal(stats['checked_out'], 2)
        assert_equal(stats['checked_in'], 1)
        assert_equal(stats['opened'], {'current': 1, 'max': 2})

    def test_connection_disposed(self):
        self.logger.connection_disposed({'level': 'info'})
        self.logger.connection_disposed({'level': 'error'})

        stats = self.logger.stats
        assert_equal(stats['disposed']['success'], 1)
        assert_equal(stats['disposed']['failure'], 1)

    def test_connection_recycled(self):
        self.logger.connection_recycled({})
        stats = self.logger.stats
        assert_equal(stats['recycled'], 1)

    def test_connection_failed(self):
        self.logger.connection_failed({})
        stats = self.logger.stats
        assert_equal(stats['failed'], 1)

    def test_obtained_server_list(self):
        self.logger.obtained_server_list({})
        stats = self.logger.stats
        assert_equal(stats['list'], 1)

    def test_pool_at_max(self):
        self.logger.pool_at_max({})
        stats = self.logger.stats
        assert_equal(stats['at_max'], 1)
Пример #8
0
class TestStatsLogger(TestCase):
    def __init__(self, methodName="runTest"):
        super(TestStatsLogger, self).__init__(methodName)

    def setUp(self):
        super(TestStatsLogger, self).setUp()
        self.logger = StatsLogger()

    def test_empty(self):
        assert_equal(self.logger.stats, self.logger._stats)

    def test_connection_created(self):
        self.logger.connection_created({"level": "info"})
        self.logger.connection_created({"level": "error"})

        stats = self.logger.stats
        assert_equal(stats["created"]["success"], 1)
        assert_equal(stats["created"]["failure"], 1)

    def test_connection_checked(self):
        self.logger.connection_checked_out({})
        self.logger.connection_checked_out({})
        self.logger.connection_checked_in({})
        stats = self.logger.stats
        assert_equal(stats["checked_out"], 2)
        assert_equal(stats["checked_in"], 1)
        assert_equal(stats["opened"], {"current": 1, "max": 2})

    def test_connection_disposed(self):
        self.logger.connection_disposed({"level": "info"})
        self.logger.connection_disposed({"level": "error"})

        stats = self.logger.stats
        assert_equal(stats["disposed"]["success"], 1)
        assert_equal(stats["disposed"]["failure"], 1)

    def test_connection_recycled(self):
        self.logger.connection_recycled({})
        stats = self.logger.stats
        assert_equal(stats["recycled"], 1)

    def test_connection_failed(self):
        self.logger.connection_failed({})
        stats = self.logger.stats
        assert_equal(stats["failed"], 1)

    def test_obtained_server_list(self):
        self.logger.obtained_server_list({})
        stats = self.logger.stats
        assert_equal(stats["list"], 1)

    def test_pool_at_max(self):
        self.logger.pool_at_max({})
        stats = self.logger.stats
        assert_equal(stats["at_max"], 1)
 def connection_failed(self, dic):
     StatsLogger.connection_failed(self, dic)
     self.failure_dict = dic
 def obtained_server_list(self, dic):
     StatsLogger.obtained_server_list(self, dic)
     self.serv_list = dic.get('server_list')