Пример #1
0
 def test_release_acquire(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     yield pool.release(c1)
     c2 = yield pool.acquire()
     self.assertEqual(c1, c2)
Пример #2
0
 def test_release_acquire(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     yield pool.release(c1)
     c2 = yield pool.acquire()
     self.assertEqual(c1, c2)
Пример #3
0
 def test_release(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     self.assertEqual(len(pool.pool), 0)
     c1 = yield pool.acquire()
     self.assertEqual(len(pool._acquired), 1)
     yield pool.release(c1)
     self.assertEqual(len(pool.pool), 1)
     self.assertEqual(len(pool._acquired), 0)
Пример #4
0
 def test_release(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     self.assertEqual(len(pool.pool), 0)
     c1 = yield pool.acquire()
     self.assertEqual(len(pool._acquired), 1)
     yield pool.release(c1)
     self.assertEqual(len(pool.pool), 1)
     self.assertEqual(len(pool._acquired), 0)
Пример #5
0
 def test_close(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     yield pool.release(c2)
     pool.close()
     self.assertTrue(c2.conn.closed)
     self.assertFalse(c1.conn.closed)
     c1.close()
     self.assertTrue(pool.closed)
Пример #6
0
 def test_self_release(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******",
                 force_release=True)
     self.assertEqual(len(pool.pool), 0)
     c1 = yield pool.acquire()
     self.assertEqual(len(pool._acquired), 1)
     stream = c1.send("1 + 1")
     resp = yield stream.read()
     self.assertEqual(len(pool.pool), 1)
     self.assertEqual(len(pool._acquired), 0)
Пример #7
0
 def test_maxsize(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     c3 = pool.acquire()
     self.assertIsInstance(c3, Future)
     with self.assertRaises(tornado.gen.TimeoutError):
         yield gen.with_timeout(timedelta(seconds=0.1), c3)
     c1.conn.close()
     c2.conn.close()
Пример #8
0
 def test_maxsize(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     c3 = pool.acquire()
     self.assertIsInstance(c3, Future)
     with self.assertRaises(tornado.gen.TimeoutError):
         yield gen.with_timeout(timedelta(seconds=0.1), c3)
     c1.conn.close()
     c2.conn.close()
Пример #9
0
 def test_release_closed(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******",
                 log_level=LOG_LEVEL)
     self.assertEqual(len(pool.pool), 0)
     c1 = yield pool.acquire()
     self.assertEqual(len(pool._acquired), 1)
     c1.close()
     yield pool.release(c1)
     self.assertEqual(len(pool.pool), 0)
     self.assertEqual(len(pool._acquired), 0)
Пример #10
0
 def test_cancelled(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     c3 = pool.acquire()
     pool.close()
     # Tornado futures do not support cancellation!
     # self.assertTrue(c3.cancelled())
     c1.close()
     c2.close()
Пример #11
0
 def test_self_release(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******",
                 force_release=True)
     self.assertEqual(len(pool.pool), 0)
     c1 = yield pool.acquire()
     self.assertEqual(len(pool._acquired), 1)
     stream = c1.send("1 + 1")
     resp = yield stream.read()
     self.assertEqual(len(pool.pool), 1)
     self.assertEqual(len(pool._acquired), 0)
Пример #12
0
 def test_acquire_send(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     connection = yield pool.acquire()
     resp = connection.send("1 + 1")
     while True:
         msg = yield resp.read()
         if msg is None:
             break
         self.assertEqual(msg.status_code, 200)
         self.assertEqual(msg.data[0], 2)
     connection.conn.close()
Пример #13
0
 def test_acquire_send(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     connection = yield pool.acquire()
     resp = connection.send("1 + 1")
     while True:
         msg = yield resp.read()
         if msg is None:
             break
         self.assertEqual(msg.status_code, 200)
         self.assertEqual(msg.data[0], 2)
     connection.conn.close()
Пример #14
0
    def test_acquire(self):
        pool = Pool("ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        async def go():
            connection = await pool.acquire()
            conn = connection.conn
            self.assertFalse(conn.closed)
            self.assertIsInstance(conn, Response)
            self.assertEqual(pool.size, 1)
            self.assertTrue(connection in pool._acquired)
            connection2 = await pool.acquire()
            conn2 = connection.conn
            self.assertFalse(conn2.closed)
            self.assertIsInstance(conn2, Response)
            self.assertEqual(pool.size, 2)
            self.assertTrue(connection2 in pool._acquired)
            conn.close()
            conn2.close()

        self.loop.run_sync(go)
Пример #15
0
    def test_acquire(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        @trollius.coroutine
        def go():
            connection = yield From(pool.acquire())
            conn = connection.conn
            self.assertFalse(conn.closed)
            self.assertIsInstance(conn, Response)
            self.assertEqual(pool.size, 1)
            self.assertTrue(connection in pool._acquired)
            connection2 = yield From(pool.acquire())
            conn2 = connection.conn
            self.assertFalse(conn2.closed)
            self.assertIsInstance(conn2, Response)
            self.assertEqual(pool.size, 2)
            self.assertTrue(connection2 in pool._acquired)
            conn.close()
            conn2.close()

        self.loop.run_until_complete(go())
Пример #16
0
    def test_future_class(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******")

        self.assertTrue(hasattr(pool, 'future_class'))
        self.assertEqual(pool.future_class, Future)
Пример #17
0
 async def go():
     pool1 = Pool(url="ws://localhost:8182/",
                  maxsize=2,
                  username="******",
                  password="******",
                  future_class=Future)
     pool2 = Pool(url="ws://localhost:8182/",
                  username="******",
                  password="******",
                  future_class=Future)
     conn1 = await pool1.acquire()
     conn2 = await pool2.acquire()
     conn3 = await pool2.acquire()
     conn4 = await pool2.acquire()
     pool1.pool.append(conn2)
     pool1.pool.append(conn3)
     pool1.pool.append(conn4)
     await pool1.release(conn1)
     self.assertTrue(conn1.closed)
Пример #18
0
 def test_acquire(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     connection = yield pool.acquire()
     conn = connection.conn
     self.assertFalse(conn.closed)
     self.assertIsInstance(conn, Response)
     self.assertEqual(pool.size, 1)
     self.assertTrue(connection in pool._acquired)
     connection2 = yield pool.acquire()
     conn2 = connection2.conn
     self.assertFalse(conn2.closed)
     self.assertIsInstance(conn2, Response)
     self.assertEqual(pool.size, 2)
     self.assertTrue(connection2 in pool._acquired)
     self.assertNotEqual(conn, conn2)
     conn.close()
     conn2.close()
Пример #19
0
 def test_acquire(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     connection = yield pool.acquire()
     conn = connection.conn
     self.assertFalse(conn.closed)
     self.assertIsInstance(conn, Response)
     self.assertEqual(pool.size, 1)
     self.assertTrue(connection in pool._acquired)
     connection2 = yield pool.acquire()
     conn2 = connection2.conn
     self.assertFalse(conn2.closed)
     self.assertIsInstance(conn2, Response)
     self.assertEqual(pool.size, 2)
     self.assertTrue(connection2 in pool._acquired)
     self.assertNotEqual(conn, conn2)
     conn.close()
     conn2.close()
Пример #20
0
    def test_release_acquire(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            await pool.release(c1)
            c2 = await pool.acquire()
            self.assertEqual(c1, c2)

        self.loop.run_until_complete(go())
Пример #21
0
    def test_release_acquire(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        @trollius.coroutine
        def go():
            c1 = yield From(pool.acquire())
            yield From(pool.release(c1))
            c2 = yield From(pool.acquire())
            self.assertEqual(c1, c2)

        self.loop.run_until_complete(go())
Пример #22
0
 def test_pool_too_big(self):
     pool1 = Pool("ws://localhost:8182/",
                  maxsize=2,
                  username="******",
                  password="******")
     pool2 = Pool("ws://localhost:8182/",
                  username="******",
                  password="******")
     conn1 = yield pool1.acquire()
     conn2 = yield pool2.acquire()
     conn3 = yield pool2.acquire()
     conn4 = yield pool2.acquire()
     pool1.pool.append(conn2)
     pool1.pool.append(conn3)
     pool1.pool.append(conn4)
     yield pool1.release(conn1)
     self.assertTrue(conn1.closed)
Пример #23
0
    def test_release_closed(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)
        self.assertEqual(len(pool.pool), 0)

        @asyncio.coroutine
        def go():
            c1 = yield from pool.acquire()
            self.assertEqual(len(pool._acquired), 1)
            c1.close()
            yield from pool.release(c1)
            self.assertEqual(len(pool.pool), 0)
            self.assertEqual(len(pool._acquired), 0)
        self.loop.run_until_complete(go())
Пример #24
0
    def test_close(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            await pool.release(c2)
            pool.close()
            self.assertTrue(c2.conn.closed)
            self.assertFalse(c1.conn.closed)
            c1.close()

        self.loop.run_until_complete(go())
Пример #25
0
    def test_cancelled(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            c3 = pool.acquire()
            pool.close()
            self.assertTrue(c3.cancelled())
            c1.close()
            c2.close()

        self.loop.run_until_complete(go())
Пример #26
0
    def test_release_closed(self):
        pool = Pool("ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)
        self.assertEqual(len(pool.pool), 0)

        async def go():
            c1 = await pool.acquire()
            self.assertEqual(len(pool._acquired), 1)
            c1.close()
            await pool.release(c1)
            self.assertEqual(len(pool.pool), 0)
            self.assertEqual(len(pool._acquired), 0)

        self.loop.run_sync(go)
Пример #27
0
    def test_release(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        async def go():
            self.assertEqual(len(pool.pool), 0)
            c1 = await pool.acquire()
            self.assertEqual(len(pool._acquired), 1)
            await pool.release(c1)
            self.assertEqual(len(pool.pool), 1)
            self.assertEqual(len(pool._acquired), 0)

        self.loop.run_until_complete(go())
Пример #28
0
    def test_cancelled(self):
        pool = Pool("ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            c3 = pool.acquire()
            pool.close()
            # Tornado futures don't support cancellation
            # self.assertTrue(c3.cancelled())
            c1.close()
            c2.close()

        self.loop.run_sync(go)
Пример #29
0
    def test_close(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        @trollius.coroutine
        def go():
            c1 = yield From(pool.acquire())
            c2 = yield From(pool.acquire())
            yield From(pool.release(c2))
            pool.close()
            self.assertTrue(c2.conn.closed)
            self.assertFalse(c1.conn.closed)
            c1.close()

        self.loop.run_until_complete(go())
Пример #30
0
 def test_close(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     yield pool.release(c2)
     pool.close()
     self.assertTrue(c2.conn.closed)
     self.assertFalse(c1.conn.closed)
     c1.close()
     self.assertTrue(pool.closed)
Пример #31
0
 def test_cancelled(self):
     pool = Pool("ws://localhost:8182/",
                 maxsize=2,
                 username="******",
                 password="******")
     c1 = yield pool.acquire()
     c2 = yield pool.acquire()
     c3 = pool.acquire()
     pool.close()
     # Tornado futures do not support cancellation!
     # self.assertTrue(c3.cancelled())
     c1.close()
     c2.close()
Пример #32
0
    def test_maxsize(self):
        pool = Pool("ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            c3 = pool.acquire()
            self.assertIsInstance(c3, Future)
            with self.assertRaises(gen.TimeoutError):
                await gen.with_timeout(timedelta(seconds=0.1), c3)
            c1.conn.close()
            c2.conn.close()

        self.loop.run_sync(go)
Пример #33
0
    def test_self_release(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    force_release=True,
                    future_class=Future,
                    loop=self.loop)

        async def go():
            self.assertEqual(len(pool.pool), 0)
            c1 = await pool.acquire()
            self.assertEqual(len(pool._acquired), 1)
            stream = c1.send("1 + 1")
            resp = await stream.read()
            self.assertEqual(len(pool.pool), 1)
            self.assertEqual(len(pool._acquired), 0)

        self.loop.run_until_complete(go())
Пример #34
0
    def test_maxsize(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            c3 = pool.acquire()
            self.assertIsInstance(c3, Future)
            with self.assertRaises(asyncio.TimeoutError):
                await asyncio.wait_for(c3, 0.1)
            c1.conn.close()
            c2.conn.close()

        self.loop.run_until_complete(go())
Пример #35
0
 def go():
     pool1 = Pool(
         url="ws://localhost:8182/", maxsize=2, username="******", password="******", future_class=Future
     )
     pool2 = Pool(url="ws://localhost:8182/", username="******", password="******", future_class=Future)
     conn1 = yield From(pool1.acquire())
     conn2 = yield From(pool2.acquire())
     conn3 = yield From(pool2.acquire())
     conn4 = yield From(pool2.acquire())
     pool1.pool.append(conn2)
     pool1.pool.append(conn3)
     pool1.pool.append(conn4)
     yield From(pool1.release(conn1))
     self.assertTrue(conn1.closed)
Пример #36
0
    def test_acquire_send(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        async def go():
            connection = await pool.acquire()
            resp = connection.send("1 + 1")
            while True:
                msg = await resp.read()
                if msg is None:
                    break
                self.assertEqual(msg.status_code, 200)
                self.assertEqual(msg.data[0], 2)
            connection.conn.close()

        self.loop.run_until_complete(go())
Пример #37
0
    def test_maxsize(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    loop=self.loop,
                    future_class=Future)

        @trollius.coroutine
        def go():
            c1 = yield From(pool.acquire())
            c2 = yield From(pool.acquire())
            c3 = pool.acquire()
            self.assertIsInstance(c3, Future)
            with self.assertRaises(trollius.TimeoutError):
                yield From(trollius.wait_for(c3, 0.1))
            c1.conn.close()
            c2.conn.close()

        self.loop.run_until_complete(go())
Пример #38
0
 def test_pool_too_big(self):
     pool1 = Pool("ws://localhost:8182/",
                  maxsize=2,
                  username="******",
                  password="******")
     pool2 = Pool("ws://localhost:8182/",
                  username="******",
                  password="******")
     conn1 = yield pool1.acquire()
     conn2 = yield pool2.acquire()
     conn3 = yield pool2.acquire()
     conn4 = yield pool2.acquire()
     pool1.pool.append(conn2)
     pool1.pool.append(conn3)
     pool1.pool.append(conn4)
     yield pool1.release(conn1)
     self.assertTrue(conn1.closed)
Пример #39
0
    def test_maxsize_release(self):
        pool = Pool(url="ws://localhost:8182/",
                    maxsize=2,
                    username="******",
                    password="******",
                    future_class=Future)

        async def go():
            c1 = await pool.acquire()
            c2 = await pool.acquire()
            c3 = pool.acquire()
            self.assertIsInstance(c3, Future)
            with self.assertRaises(asyncio.TimeoutError):
                shielded_fut = asyncio.shield(c3)
                await asyncio.wait_for(shielded_fut, 0.1)
            await pool.release(c2)
            c3 = await c3
            self.assertEqual(c2, c3)
            c1.conn.close()
            c2.conn.close()
            c3.conn.close()

        self.loop.run_until_complete(go())
Пример #40
0
 def setUp(self):
     super(TornadoCallbackStyleTest, self).setUp()
     self.pool = Pool("ws://localhost:8182/")