def test_load(httpx_mock): cache = stub(get=lambda url: None, add=lambda url, content: None) transport = AsyncTransport(cache=cache) httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x") result = transport.load("http://tests.python-zeep.org/test.xml") assert result == b"x"
async def test_http_error(httpx_mock: HTTPXMock): transport = AsyncTransport() httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x", status_code=500) with pytest.raises(exceptions.TransportError) as exc: transport.load("http://tests.python-zeep.org/test.xml") assert exc.value.status_code == 500 assert exc.value.message is None
def test_load_cache(httpx_mock): cache = InMemoryCache() transport = AsyncTransport(cache=cache) httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x") result = transport.load("http://tests.python-zeep.org/test.xml") assert result == b"x" assert cache.get("http://tests.python-zeep.org/test.xml") == b"x"
async def main(): client = AsyncClient( wsdl="http://localhost:8080/say_hello/?WSDL", transport=AsyncTransport(cache=InMemoryCache(timeout=None)), ) await send_messages(client) await client.transport.aclose()
async def test_post(httpx_mock: HTTPXMock): cache = stub(get=lambda url: None, add=lambda url, content: None) transport = AsyncTransport(cache=cache) envelope = etree.Element("Envelope") httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x") result = await transport.post_xml("http://tests.python-zeep.org/test.xml", envelope=envelope, headers={}) assert result.content == b"x" await transport.aclose()
def makeRequest(self, func, data): result = [] def handle_future(future): result.extend(future.result()) loop = asyncio.get_event_loop() transport = AsyncTransport(loop, cache=None) client = zeep.Client(self.PATH, transport=transport) tasks = [getattr(client.service, func)(**data)] future = asyncio.gather(*tasks, return_exceptions=True) future.add_done_callback(handle_future) # st = time.time() loop.run_until_complete(future) loop.run_until_complete(transport.session.close()) # print("time: %.2f" % (time.time() - st)) return result
async def test_session_close(httpx_mock: HTTPXMock): transport = AsyncTransport() return await transport.aclose()
def test_no_cache(event_loop): transport = AsyncTransport() assert transport.cache is None