From: Bob Halley Date: Sat, 15 Jul 2023 15:26:21 +0000 (-0700) Subject: Do all httpx imports before setting _have_httpx. X-Git-Tag: v2.5.0rc1~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71a90fc934ef190e6a371f14e136a5a34e27849a;p=thirdparty%2Fdnspython.git Do all httpx imports before setting _have_httpx. This gives us the expected test skipping when httpx isn't available or is too old, vs. the test failures that were happening before this change. --- diff --git a/dns/query.py b/dns/query.py index d49688dd..bd8388af 100644 --- a/dns/query.py +++ b/dns/query.py @@ -60,8 +60,13 @@ def _expiration_for_this_attempt(timeout, expiration): _have_httpx = False _have_http2 = False try: + import httpcore + import httpcore._backends.sync import httpx + _CoreNetworkBackend = httpcore.NetworkBackend + _CoreSyncStream = httpcore._backends.sync.SyncStream + _have_httpx = True try: # See if http2 support is available. @@ -70,12 +75,6 @@ try: except Exception: pass - import httpcore - import httpcore._backends.sync - - _CoreNetworkBackend = httpcore.NetworkBackend - _CoreSyncStream = httpcore._backends.sync.SyncStream - class _NetworkBackend(_CoreNetworkBackend): def __init__(self, resolver, local_port, bootstrap_address, family): super().__init__()