]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Allow skipping test cases that need Internet access 808/head
authorBenjamin Drung <bdrung@ubuntu.com>
Mon, 16 May 2022 10:59:58 +0000 (12:59 +0200)
committerBenjamin Drung <bdrung@ubuntu.com>
Mon, 16 May 2022 10:59:58 +0000 (12:59 +0200)
Support skipping all test cases that access the Internet by setting the
environment variable `NO_INTERNET`. This is useful to make the test run
reproducible and robust for future runs (to avoid breaking in case some
random service on the Internet changes).

Signed-off-by: Benjamin Drung <bdrung@ubuntu.com>
tests/util.py

index c8f9704b2f50eb16cdfc36ec5e9358d0053bd8c3..ffce722d32cdca75c701f1d03d586cc53a12a004 100644 (file)
@@ -17,7 +17,7 @@
 
 import enum
 import inspect
-import os.path
+import os
 import socket
 
 # Cache for is_internet_reachable()
@@ -31,15 +31,19 @@ def here(filename):
 def is_internet_reachable():
     """Check if the Internet is reachable.
 
-    The result is cached.
+    Setting the environment variable `NO_INTERNET` will let this
+    function always return False. The result is cached.
     """
     global _internet_reachable
     if _internet_reachable is None:
-        try:
-            socket.gethostbyname("dnspython.org")
-            _internet_reachable = True
-        except socket.gaierror:
+        if os.environ.get("NO_INTERNET"):
             _internet_reachable = False
+        else:
+            try:
+                socket.gethostbyname("dnspython.org")
+                _internet_reachable = True
+            except socket.gaierror:
+                _internet_reachable = False
     return _internet_reachable