async def maker(*args, **kwargs): nonlocal session session = ClientSession(*args, loop=loop, render='pyppetter', pyppeteer_options={'headless': False}, **kwargs) await session.init_session() return session
async def test_client_session_timeout_args(loop) -> None: session1 = ClientSession(loop=loop) assert session1._timeout == client.DEFAULT_TIMEOUT with pytest.warns(DeprecationWarning): session2 = ClientSession(loop=loop, read_timeout=20 * 60, conn_timeout=30 * 60) assert session2._timeout == client.ClientTimeout(total=20 * 60, connect=30 * 60) with pytest.raises(ValueError): ClientSession(loop=loop, timeout=client.ClientTimeout(total=10 * 60), read_timeout=20 * 60) with pytest.raises(ValueError): ClientSession(loop=loop, timeout=client.ClientTimeout(total=10 * 60), conn_timeout=30 * 60)
async def test_del(connector, loop) -> None: loop.set_debug(False) # N.B. don't use session fixture, it stores extra reference internally session = ClientSession(connector=connector, loop=loop) logs = [] loop.set_exception_handler(lambda loop, ctx: logs.append(ctx)) with pytest.warns(ResourceWarning): del session gc.collect() assert len(logs) == 1 expected = { 'client_session': mock.ANY, 'message': 'Unclosed client session' } assert logs[0] == expected
async def test_requote_redirect_setter() -> None: session = ClientSession() assert session.requote_redirect_url with pytest.warns(DeprecationWarning): session.requote_redirect_url = False assert not session.requote_redirect_url
async def test_requote_redirect_url_default_disable() -> None: session = ClientSession(requote_redirect_url=False) assert not session.requote_redirect_url
async def test_requote_redirect_url_default() -> None: session = ClientSession() assert session.requote_redirect_url
async def test_client_session_custom_attr(loop) -> None: session = ClientSession(loop=loop) with pytest.warns(DeprecationWarning): session.custom = None
async def test_borrow_connector_loop(connector, create_session, loop) -> None: session = ClientSession(connector=connector, loop=None) try: assert session._loop, loop finally: await session.close()
async def test_context_manager(connector, loop) -> None: with pytest.raises(TypeError): with ClientSession(loop=loop, connector=connector) as session: pass assert session.closed
async def maker(*args, **kwargs): nonlocal session session = ClientSession(*args, loop=loop, **kwargs) return session
async def make_sess(): return ClientSession(connector=connector, loop=loop)
async def maker(*args, **kwargs): nonlocal session session = ClientSession(*args, loop=loop, render='pyppetter', **kwargs) await session.init_session() return session