Exemple #1
0
 def test_close_close_removes_all(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     obj.remove = mock.Mock()
     psycopg2_conns = [mock.Mock(), mock.Mock()]
     [obj.add(conn) for conn in psycopg2_conns]
     obj.close()
     obj.remove.assert_hass_calls(psycopg2_conns)
Exemple #2
0
 def test_get_returns_first_psycopg2_conn(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False):
         psycopg2_conns = [mock.Mock(), mock.Mock()]
         [obj.add(conn) for conn in psycopg2_conns]
         session = mock.Mock()
         self.assertEqual(obj.get(session), psycopg2_conns[0])
Exemple #3
0
 def test_closed_conn_invokes_remove_on_clean(self):
     psycopg2_conn = mock.Mock()
     psycopg2_conn.closed = True
     obj = pool.Pool(str(uuid.uuid4()))
     obj.remove = mock.Mock()
     obj.add(psycopg2_conn)
     obj.clean()
     obj.remove.assert_called_once_with(psycopg2_conn)
Exemple #4
0
 def test_connection_lock_is_called_when_lock_is(self):
     with mock.patch('queries.pool.Connection.lock') as lock:
         obj = pool.Pool(str(uuid.uuid4()))
         psycopg2_conn = mock.Mock()
         obj.add(psycopg2_conn)
         session = mock.Mock()
         obj.lock(psycopg2_conn, session)
         lock.assert_called_once_with(session)
Exemple #5
0
 def test_lock_resets_idle_start(self):
     with mock.patch('queries.pool.Connection.lock'):
         obj = pool.Pool(str(uuid.uuid4()))
         obj.idle_start = time.time()
         psycopg2_conn = mock.Mock()
         obj.add(psycopg2_conn)
         obj.lock(psycopg2_conn, mock.Mock())
         self.assertIsNone(obj.idle_start)
Exemple #6
0
 def test_free_invokes_connection_free(self):
     obj = pool.Pool(str(uuid.uuid4()))
     psycopg2_conn = mock.Mock()
     obj.add(psycopg2_conn)
     conn = obj._connection(psycopg2_conn)
     conn.free = mock.Mock()
     obj.free(psycopg2_conn)
     conn.free.assert_called_once_with()
Exemple #7
0
 def test_free_raises_not_found_exception(self):
     obj = pool.Pool(str(uuid.uuid4()))
     psycopg2_conn = mock.Mock()
     obj.add(psycopg2_conn)
     conn = obj._connection(psycopg2_conn)
     conn.free = mock.Mock()
     obj.free(psycopg2_conn)
     conn.free.assert_called_once_with()
Exemple #8
0
 def test_remove_removes_connection(self):
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False):
         obj = pool.Pool(str(uuid.uuid4()))
         psycopg2_conn = mock.Mock()
         obj.add(psycopg2_conn)
         obj.remove(psycopg2_conn)
         self.assertNotIn(psycopg2_conn, obj)
Exemple #9
0
 def test_idle_connections(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     psycopg2_conns = [mock.Mock(), mock.Mock()]
     [obj.add(conn) for conn in psycopg2_conns]
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False):
         self.assertListEqual([c.handle for c in obj.idle_connections],
                              psycopg2_conns)
Exemple #10
0
 def test_remove_closes_connection(self):
     close_method = mock.Mock()
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False,
                              close=close_method):
         obj = pool.Pool(str(uuid.uuid4()))
         psycopg2_conn = mock.Mock()
         obj.add(psycopg2_conn)
         obj.remove(psycopg2_conn)
         close_method.assert_called_once_with()
Exemple #11
0
 def test_get_resets_idle_start_to_none(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     psycopg2_conns = [mock.Mock(), mock.Mock()]
     [obj.add(conn) for conn in psycopg2_conns]
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False):
         session = mock.Mock()
         obj.idle_start = time.time()
         obj.get(session)
         self.assertIsNone(obj.idle_start)
Exemple #12
0
 def test_get_locks_first_psycopg2_conn(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     psycopg2_conns = [mock.Mock(), mock.Mock()]
     [obj.add(conn) for conn in psycopg2_conns]
     lock = mock.Mock()
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False, lock=lock):
         session = mock.Mock()
         obj.get(session)
         lock.assert_called_once_with(session)
Exemple #13
0
 def test_free_resets_idle_start(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=100)
     psycopg2_conns = [mock.Mock(), mock.Mock()]
     with mock.patch.multiple('queries.pool.Connection',
                              busy=False, closed=False):
         [obj.add(conn) for conn in psycopg2_conns]
         for psycopg2_conn in psycopg2_conns:
             conn = obj.connection_handle(psycopg2_conn)
             conn.free = mock.Mock()
         obj.free(psycopg2_conns[1])
         self.assertAlmostEqual(int(obj.idle_start), int(time.time()))
Exemple #14
0
 def test_connection_count_after_add(self):
     psycopg2_conn = mock.Mock()
     obj = pool.Pool(str(uuid.uuid4()))
     obj.add(psycopg2_conn)
     self.assertEqual(len(obj), 1)
Exemple #15
0
 def test_add_existing_connection_raises_on_second_add(self):
     psycopg2_conn = mock.Mock()
     obj = pool.Pool(str(uuid.uuid4()))
     obj.add(psycopg2_conn)
     self.assertRaises(ValueError, obj.add, psycopg2_conn)
Exemple #16
0
 def test_default_connection_count(self):
     obj = pool.Pool(str(uuid.uuid4()))
     self.assertEqual(len(obj), 0)
Exemple #17
0
 def test_add_new_connection(self):
     psycopg2_conn = mock.Mock()
     obj = pool.Pool(str(uuid.uuid4()))
     obj.add(psycopg2_conn)
     self.assertIn(psycopg2_conn, obj)
Exemple #18
0
 def test_max_size_assignment(self):
     obj = pool.Pool(str(uuid.uuid4()))
     obj.set_max_size(10)
     self.assertEqual(obj.max_size, 10)
Exemple #19
0
 def test_pool_doesnt_contain_connection(self):
     obj = pool.Pool(str(uuid.uuid4()))
     self.assertNotIn('foo', obj)
Exemple #20
0
 def test_max_size_constructor_assignment(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=10)
     self.assertEqual(obj.max_size, 10)
Exemple #21
0
 def test_idle_ttl_assignment(self):
     obj = pool.Pool(str(uuid.uuid4()))
     obj.set_idle_ttl(10)
     self.assertEqual(obj.idle_ttl, 10)
Exemple #22
0
 def test_max_size_is_default(self):
     obj = pool.Pool(str(uuid.uuid4()))
     self.assertEqual(obj.max_size, pool.DEFAULT_MAX_SIZE)
Exemple #23
0
 def test_idle_ttl_constructor_assignment(self):
     obj = pool.Pool(str(uuid.uuid4()), 10)
     self.assertEqual(obj.idle_ttl, 10)
Exemple #24
0
 def test_idle_ttl_is_default(self):
     obj = pool.Pool(str(uuid.uuid4()))
     self.assertEqual(obj.idle_ttl, pool.DEFAULT_IDLE_TTL)
Exemple #25
0
 def test_remove_raises_when_connection_not_found(self):
     obj = pool.Pool(str(uuid.uuid4()))
     self.assertRaises(pool.ConnectionNotFoundError, obj.remove,
                       mock.Mock())
Exemple #26
0
 def test_add_when_pool_is_full_raises(self):
     obj = pool.Pool(str(uuid.uuid4()), max_size=1)
     obj.add(mock.Mock())
     mock_conn = mock.Mock()
     self.assertRaises(pool.PoolFullError, obj.add, mock_conn)
Exemple #27
0
 def test__connection_returns_handle(self):
     obj = pool.Pool(str(uuid.uuid4()))
     psycopg2_conn = mock.Mock()
     obj.add(psycopg2_conn)
     self.assertEqual(obj._connection(psycopg2_conn).handle, psycopg2_conn)
Exemple #28
0
 def test_remove_raises_when_connection_is_busy(self):
     obj = pool.Pool(str(uuid.uuid4()))
     psycopg2_conn = mock.Mock()
     obj.add(psycopg2_conn)
     self.assertRaises(pool.ConnectionBusyError, obj.remove, psycopg2_conn)
Exemple #29
0
 def test_shutdown_raises_when_executing(self):
     psycopg2_conn = mock_connection()
     psycopg2_conn.isexecuting.return_value = True
     obj = pool.Pool(str(uuid.uuid4()))
     obj.add(psycopg2_conn)
     self.assertRaises(pool.ConnectionBusyError, obj.shutdown)
Exemple #30
0
 def test_id_property(self):
     pool_id = str(uuid.uuid4())
     obj = pool.Pool(pool_id)
     self.assertEqual(obj.id, pool_id)