]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests: alphabetize and group Python imports & add check
authorDan Fandrich <dan@coneharvesters.com>
Fri, 3 Apr 2026 18:52:44 +0000 (11:52 -0700)
committerDan Fandrich <dan@coneharvesters.com>
Wed, 8 Apr 2026 17:28:05 +0000 (10:28 -0700)
- De-duplicates, groups, and sorts imports based on the provided `isort` settings.

44 files changed:
scripts/pythonlint.sh
tests/dictserver.py
tests/http/conftest.py
tests/http/scorecard.py
tests/http/test_01_basic.py
tests/http/test_02_download.py
tests/http/test_03_goaway.py
tests/http/test_04_stuttered.py
tests/http/test_05_errors.py
tests/http/test_06_eyeballs.py
tests/http/test_07_upload.py
tests/http/test_08_caddy.py
tests/http/test_09_push.py
tests/http/test_10_proxy.py
tests/http/test_11_unix.py
tests/http/test_12_reuse.py
tests/http/test_13_proxy_auth.py
tests/http/test_14_auth.py
tests/http/test_15_tracing.py
tests/http/test_16_info.py
tests/http/test_17_ssl_use.py
tests/http/test_18_methods.py
tests/http/test_19_shutdown.py
tests/http/test_20_websockets.py
tests/http/test_21_resolve.py
tests/http/test_30_vsftpd.py
tests/http/test_31_vsftpds.py
tests/http/test_32_ftps_vsftpd.py
tests/http/test_40_socks.py
tests/http/test_50_scp.py
tests/http/test_51_sftp.py
tests/http/testenv/__init__.py
tests/http/testenv/caddy.py
tests/http/testenv/certs.py
tests/http/testenv/client.py
tests/http/testenv/curl.py
tests/http/testenv/dante.py
tests/http/testenv/env.py
tests/http/testenv/httpd.py
tests/http/testenv/nghttpx.py
tests/http/testenv/sshd.py
tests/http/testenv/vsftpd.py
tests/negtelnetserver.py
tests/smbserver.py

index fcebd100db607c556846da361ef5a05c27adb699..0164821548a58102090727e012ccb3ba065a6902 100755 (executable)
@@ -29,5 +29,5 @@
 
 ruff check --extend-select=B007,B016,C405,C416,COM818,D200,D213,D204,D401,\
 D415,FURB129,N818,PERF401,PERF403,PIE790,PIE808,PLW0127,Q004,RUF010,SIM101,\
-SIM117,SIM118,TRY400,TRY401,RET503,RET504,UP004,B018,B904,RSE102,RET505 \
+SIM117,SIM118,TRY400,TRY401,RET503,RET504,UP004,B018,B904,RSE102,RET505,I001 \
 "$@"
index 2c608c279279a0bb5067b002b056127782a5e24e..8dc33cd0dc727168f0affe9b6000a11414d50a7f 100755 (executable)
@@ -26,8 +26,7 @@
 #
 """DICT server."""
 
-from __future__ import (absolute_import, division, print_function,
-                        unicode_literals)
+from __future__ import absolute_import, division, print_function, unicode_literals
 
 import argparse
 import logging
index 3715e8c7bc1db9fad32e6520d7392830b1a8be70..dddcdc32799938add75c5040447232f2c6a1fbfb 100644 (file)
 #
 import logging
 import os
-import sys
 import platform
+import sys
 from typing import Generator, Union
 
 import pytest
-
 from testenv.env import EnvConfig
 
 sys.path.append(os.path.join(os.path.dirname(__file__), '.'))
 
-from testenv import Env, Nghttpx, Httpd, NghttpxQuic, NghttpxFwd, Sshd
+from testenv import Env, Httpd, Nghttpx, NghttpxFwd, NghttpxQuic, Sshd
 
 log = logging.getLogger(__name__)
 
index 573923380b4c22210abc9bc65c2dfbdaa1a691ea..e5e9e26292372fd45c2eb0aac4bb53ed7488d43b 100644 (file)
@@ -32,9 +32,18 @@ import os
 import re
 import sys
 from statistics import mean
-from typing import Dict, Any, Optional, List
-
-from testenv import Env, Httpd, CurlClient, Caddy, ExecResult, NghttpxQuic, RunProfile, Dante
+from typing import Any, Dict, List, Optional
+
+from testenv import (
+    Caddy,
+    CurlClient,
+    Dante,
+    Env,
+    ExecResult,
+    Httpd,
+    NghttpxQuic,
+    RunProfile,
+)
 
 log = logging.getLogger(__name__)
 
index eb328ea733908f901ba7038b32e592865437405c..86f7ad191f18f7dea59d4ebb94d1648b15f3bf8f 100644 (file)
 #
 import logging
 import re
-import pytest
-
-from testenv import Env
-from testenv import CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index b4ea2a42d1ca86120413eee3ec85c0b9f080a72e..dc51c25f52dd566b0920c931aa77db6bbbbbbee8 100644 (file)
@@ -30,10 +30,9 @@ import logging
 import os
 import re
 import sys
-import pytest
-
-from testenv import Env, CurlClient, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index c327d5f92ff42f552509b60cf8de3577c2bc2180..4c57bf2715d0a3a6f0181ef07328a763449c70e1 100644 (file)
@@ -28,10 +28,9 @@ import logging
 import time
 from datetime import timedelta
 from threading import Thread
-import pytest
-
-from testenv import Env, CurlClient, ExecResult
 
+import pytest
+from testenv import CurlClient, Env, ExecResult
 
 log = logging.getLogger(__name__)
 
index 7fa2fe37a55722c442d07f0c4527e3bfec631d11..1c578e2e9e77bed3d1a8e66bdb7b6cab5033db0b 100644 (file)
 ###########################################################################
 #
 import logging
-from typing import Tuple, List, Dict
-import pytest
-
-from testenv import Env, CurlClient
+from typing import Dict, List, Tuple
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index e6e1ad07058368e9bf4bc1d0222d2cfc4698089d..7a64e3055d28be022c9809724783691d7af7aa60 100644 (file)
 #
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 96fa643270c2b5aa61b53a9efea55accbdfbdb54..df547c8662b9b62193ad8dc0f43c8ef9fd0982ac 100644 (file)
 #
 import logging
 import re
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 070afeb757b459bf78b672485bf781996a9bc1ca..d486e04cd5aa5a3dd15c608a315a78a5a4396f5c 100644 (file)
@@ -30,11 +30,10 @@ import logging
 import os
 import re
 import sys
-import pytest
 from typing import List, Union
 
-from testenv import Env, CurlClient, LocalClient, ExecResult
-
+import pytest
+from testenv import CurlClient, Env, ExecResult, LocalClient
 
 log = logging.getLogger(__name__)
 
index b854dceb453cff5005904462b984dc189a350dd3..c7dd25a8eb5df6ac9fee45f94e89045ef70a3c34 100644 (file)
@@ -29,10 +29,9 @@ import filecmp
 import logging
 import os
 import re
-import pytest
-
-from testenv import Env, CurlClient, Caddy, LocalClient
 
+import pytest
+from testenv import Caddy, CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index 35425d11b7b2eb5c2b289a669f7b4b4c77f2847b..8f4714be07087c69cb5064d07d89c34d52f05a46 100644 (file)
 #
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index 37797181f8bbce49eec1264a761d03864522cb63..1a850312d90ec325c689c3eea8346570827a38c8 100644 (file)
@@ -29,10 +29,9 @@ import logging
 import os
 import re
 import sys
-import pytest
-
-from testenv import Env, CurlClient, ExecResult
 
+import pytest
+from testenv import CurlClient, Env, ExecResult
 
 log = logging.getLogger(__name__)
 
index 1432797da26c03e73957a4d61015c2e33db5ca96..fe99512a0473829a395415a0e37fa74f2799920f 100644 (file)
@@ -31,9 +31,7 @@ from threading import Thread
 from typing import Generator
 
 import pytest
-
-from testenv import Env, CurlClient
-
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 6f267d986283a63a67a2c6cfa45d0ae09ba08c9a..8ff062d6dc26d102f028a6aed29907b2b833d139 100644 (file)
 ###########################################################################
 #
 import logging
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 0d7e744dca1ab1d75078f26ce68a4bdf6530f455..d74a9f280b76a9fe125d2a2a53f8849a3d4d8fbe 100644 (file)
 import logging
 import os
 import re
-import pytest
-
-from testenv import Env, CurlClient, ExecResult
 
+import pytest
+from testenv import CurlClient, Env, ExecResult
 
 log = logging.getLogger(__name__)
 
index da3e716a688873fb78ad623dd83bb53030ea60f8..288e7b5d28de82f000756a33297faccfac0200e0 100644 (file)
 #
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index c94827aa4f899740455a2d74574ddcf4181f455d..d1bcc22273164e8759398e444d338f9c7d136d7a 100644 (file)
 #
 import logging
 import re
-import pytest
-
-from testenv import Env
-from testenv import CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 80984a284ee1f171cd7cd38e5650ff2fbec3c8e6..5be5e31b92caf97b2164abcfc25e2c57d5890795 100644 (file)
 #
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index de076c4ad55f9de3aa8b341c0f02b3215243e84f..b2339dab5165794abf3f8d65512e8a72e998bc11 100644 (file)
@@ -28,10 +28,9 @@ import json
 import logging
 import os
 import re
-import pytest
-
-from testenv import Env, CurlClient, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index d693b67e89212fd864f8d0ae583410c76ecc60cd..006347092833ac76ba19251e37272471c4b9883e 100644 (file)
 ###########################################################################
 #
 import logging
-import pytest
-
-from testenv import Env, CurlClient
 
+import pytest
+from testenv import CurlClient, Env
 
 log = logging.getLogger(__name__)
 
index 9e5effd20cd7626ead34c92f314fa39f6ac11a18..d72ed5a2ece27d9bf9268d2445d19def30e51dcb 100644 (file)
 import logging
 import os
 import re
-import pytest
-
-from testenv import Env, CurlClient, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index 979a7e5db9d0b8f36975a545c6c52616fa4bcd97..fdc9df6eb7d2e94239b9f1a40cfea50542350b0e 100644 (file)
@@ -32,12 +32,11 @@ import subprocess
 import time
 from datetime import datetime, timedelta
 from typing import Dict
-import pytest
 
-from testenv import Env, CurlClient, LocalClient
+import pytest
+from testenv import CurlClient, Env, LocalClient
 from testenv.ports import alloc_ports_and_do
 
-
 log = logging.getLogger(__name__)
 
 
index b211c772f58b04d0bc1cf8a42b9801d157884fa4..35997f2aba61dbc04c16a79606f49057a7e1f688 100644 (file)
 import logging
 import os
 from datetime import timedelta
-import pytest
-
-from testenv import Env, CurlClient, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient
 
 log = logging.getLogger(__name__)
 
index 194f3db6f86c8a58864ebf1474c400bacd4ba855..5991c4555343edae0ad8ca57f34da3611f1b0d99 100644 (file)
@@ -29,10 +29,9 @@ import filecmp
 import logging
 import os
 import shutil
-import pytest
-
-from testenv import Env, CurlClient, VsFTPD, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient, VsFTPD
 
 log = logging.getLogger(__name__)
 
index a16e6b9fd0ad3613c26ffea28f8d64e8bc4cf74e..0f8f23e9b6fa80805fd6edac53d74d5981cc8552 100644 (file)
@@ -29,10 +29,9 @@ import filecmp
 import logging
 import os
 import shutil
-import pytest
-
-from testenv import Env, CurlClient, VsFTPD, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient, VsFTPD
 
 log = logging.getLogger(__name__)
 
index 2010daec223c0181930af4bd8b155d2f0e35e84f..5433081d982222d659232a0c2c30d9eec28c11e5 100644 (file)
@@ -29,10 +29,9 @@ import filecmp
 import logging
 import os
 import shutil
-import pytest
-
-from testenv import Env, CurlClient, VsFTPD, LocalClient
 
+import pytest
+from testenv import CurlClient, Env, LocalClient, VsFTPD
 
 log = logging.getLogger(__name__)
 
index 1c844b82aae8e9b48fd4f17a0e1060ba4d2e0a47..0e1d117399c439c94785044631d417a76fc6277d 100644 (file)
@@ -28,10 +28,9 @@ import logging
 import os
 import time
 from typing import Generator
-import pytest
-
-from testenv import Env, CurlClient, Dante
 
+import pytest
+from testenv import CurlClient, Dante, Env
 
 log = logging.getLogger(__name__)
 
index 56f1d61281b8b084da2968b539f5333e5df6a42e..409378a11ee718b9affbd75d87b9706f9d9fdcaf 100644 (file)
@@ -28,10 +28,9 @@ import difflib
 import filecmp
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient, Sshd
 
+import pytest
+from testenv import CurlClient, Env, Sshd
 
 log = logging.getLogger(__name__)
 
index ec4de35d533d04be10f8282a56848a58e4f458ba..052c7ef46980dc635dfde269361809c0f9cb1723 100644 (file)
@@ -28,10 +28,9 @@ import difflib
 import filecmp
 import logging
 import os
-import pytest
-
-from testenv import Env, CurlClient, Sshd
 
+import pytest
+from testenv import CurlClient, Env, Sshd
 
 log = logging.getLogger(__name__)
 
index 3c26780d015a95a80e7eeb4aa33578ad876d06a4..c6f6b0dd2e0fcd556e8d1676f95619dfcfde32e3 100644 (file)
 ###########################################################################
 # ruff: noqa: F401, E402
 import pytest
+
 pytest.register_assert_rewrite("testenv.env", "testenv.curl", "testenv.caddy",
                                "testenv.httpd", "testenv.nghttpx")
 
-from .env import Env
-from .certs import TestCA, Credentials
+# This import must be first to avoid circular imports
+from .curl import CurlClient, ExecResult, RunProfile  # noqa: I001
+
 from .caddy import Caddy
-from .httpd import Httpd
-from .curl import CurlClient, ExecResult, RunProfile
+from .certs import Credentials, TestCA
 from .client import LocalClient
-from .nghttpx import Nghttpx, NghttpxQuic, NghttpxFwd
-from .vsftpd import VsFTPD
 from .dante import Dante
+from .env import Env
+from .httpd import Httpd
+from .nghttpx import Nghttpx, NghttpxFwd, NghttpxQuic
 from .sshd import Sshd
+from .vsftpd import VsFTPD
index 8805e88c2f3952f66ba2ddd6723bc48921bba61c..eece1a5a394af772cf8e4cd446a2fadbbd7a1ce4 100644 (file)
@@ -29,7 +29,7 @@ import os
 import socket
 import subprocess
 import time
-from datetime import timedelta, datetime
+from datetime import datetime, timedelta
 from json import JSONEncoder
 from typing import Dict
 
index 9848590f05289c3599326c10cf4876834f84670a..3e206efcdc8078da976511e2ab5b7ee139499977 100644 (file)
@@ -30,8 +30,8 @@ import os
 import re
 import shutil
 import subprocess
-from datetime import timedelta, datetime, timezone
-from typing import List, Any, Optional
+from datetime import datetime, timedelta, timezone
+from typing import Any, List, Optional
 
 from cryptography import x509
 from cryptography.hazmat.backends import default_backend
@@ -40,10 +40,14 @@ from cryptography.hazmat.primitives._serialization import PublicFormat
 from cryptography.hazmat.primitives.asymmetric import ec, rsa
 from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey
 from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
-from cryptography.hazmat.primitives.serialization import Encoding, PrivateFormat, NoEncryption, load_pem_private_key
+from cryptography.hazmat.primitives.serialization import (
+    Encoding,
+    NoEncryption,
+    PrivateFormat,
+    load_pem_private_key,
+)
 from cryptography.x509 import ExtendedKeyUsageOID, NameOID
 
-
 EC_SUPPORTED = {}
 EC_SUPPORTED.update([(curve.name.upper(), curve) for curve in [
     ec.SECP192R1,
index 7f22155c1078a2a9804669befe0539cf786addd5..36ac8a599e6ddf411c747aa11b3b084a5f5fc288 100644 (file)
@@ -29,12 +29,11 @@ import os
 import shutil
 import subprocess
 from datetime import datetime
-from typing import Optional, Dict
+from typing import Dict, Optional
 
 from . import ExecResult
 from .env import Env
 
-
 log = logging.getLogger(__name__)
 
 
index 3d443700c07ffb51e0d933c393de7a18e710333b..afa3c404e2f0d57ca935c9dc1d030681c03980fe 100644 (file)
 import json
 import logging
 import os
+import re
+import shutil
+import subprocess
 import sys
 import time
+from datetime import datetime, timedelta, timezone
 from functools import cmp_to_key
+from statistics import fmean, mean
 from threading import Thread
+from typing import Any, Dict, List, Optional, Union
+from urllib.parse import urlparse
 
 import psutil
-import re
-import shutil
-import subprocess
-from statistics import mean, fmean
-from datetime import timedelta, datetime, timezone
-from typing import List, Optional, Dict, Union, Any
-from urllib.parse import urlparse
 
 from .env import Env
 
-
 log = logging.getLogger(__name__)
 
 
index 83323bea11924f2f884ae42d517e21df862a8e5b..2feb42eb7ccaa0866be7d0aece87ea6a089c5b9c 100644 (file)
@@ -29,8 +29,7 @@ import os
 import socket
 import subprocess
 import time
-from datetime import timedelta, datetime
-
+from datetime import datetime, timedelta
 from typing import Dict
 
 from . import CurlClient
index d7eaac7bec584c24dd372dd8242890a29b6c8660..9b0ebd7260526b9361ca2f333e7f7ad5342cc0f4 100644 (file)
@@ -33,14 +33,13 @@ import subprocess
 import tempfile
 from configparser import ConfigParser, ExtendedInterpolation
 from datetime import timedelta
-from typing import Optional, Dict, List
+from typing import Dict, List, Optional
 
 import pytest
 from filelock import FileLock
 
 from .certs import CertificateSpec, Credentials, TestCA
 
-
 log = logging.getLogger(__name__)
 
 
index 7a353791addecb4f530dfed69157fe6800bbfd80..655bfc3b7fd9417c1b443ca5b06a1db4be5c251d 100644 (file)
 #
 ###########################################################################
 #
+import copy
 import inspect
 import logging
 import os
 import shutil
 import socket
 import subprocess
-from datetime import timedelta, datetime
-from json import JSONEncoder
 import time
-from typing import List, Union, Optional, Dict
-import copy
+from datetime import datetime, timedelta
+from json import JSONEncoder
+from typing import Dict, List, Optional, Union
 
 from .curl import CurlClient, ExecResult
 from .env import Env
index 0393c0d078d85be578b6021615cc65d6576b0d5a..0d95a34bceb9954698edb875ca2e50539d5e0924 100644 (file)
@@ -30,11 +30,11 @@ import signal
 import socket
 import subprocess
 import time
-from typing import Optional, Dict
 from datetime import datetime, timedelta
+from typing import Dict, Optional
 
-from .env import Env, NghttpxUtil
 from .curl import CurlClient
+from .env import Env, NghttpxUtil
 from .ports import alloc_ports_and_do
 
 log = logging.getLogger(__name__)
index 10384fd5e824d09be731273a324fad8051ea1263..e800ced17b67820224bc30d2162e11271a185ba4 100644 (file)
@@ -30,8 +30,7 @@ import socket
 import stat
 import subprocess
 import time
-from datetime import timedelta, datetime
-
+from datetime import datetime, timedelta
 from typing import Dict
 
 from . import CurlClient
index 09cfc0826aa4a595494bd458b1ec989f86d50d4b..ace2884c7d3529f2036c016fe50bd216ebfb3046 100644 (file)
@@ -30,9 +30,8 @@ import re
 import socket
 import subprocess
 import time
-
 from datetime import datetime, timedelta
-from typing import List, Dict
+from typing import Dict, List
 
 from .curl import CurlClient, ExecResult
 from .env import Env
index f85899bc3104dd6fbd2e4100a1247d8763490cee..34be28182b26e2a80c818df36c4e7b4d6507bbeb 100755 (executable)
@@ -23,8 +23,7 @@
 #
 """A telnet server which negotiates."""
 
-from __future__ import (absolute_import, division, print_function,
-                        unicode_literals)
+from __future__ import absolute_import, division, print_function, unicode_literals
 
 import argparse
 import logging
index 14d9e2e35227785a1b267893ac660c6f636f7c6a..34d3dabc008de377ca510b6c766ce21bd70fcfc0 100755 (executable)
 """Server for testing SMB."""
 
 import argparse
+import configparser
 import logging
 import os
 import signal
 import sys
 import tempfile
 import threading
-import configparser
 
 # Import our curl test data helper
 from util import ClosingFileHandler, TestData
@@ -45,8 +45,7 @@ except ImportError:
     sys.exit(1)
 from impacket import smb as imp_smb
 from impacket import smbserver as imp_smbserver
-from impacket.nt_errors import (STATUS_ACCESS_DENIED, STATUS_NO_SUCH_FILE,
-                                STATUS_SUCCESS)
+from impacket.nt_errors import STATUS_ACCESS_DENIED, STATUS_NO_SUCH_FILE, STATUS_SUCCESS
 
 log = logging.getLogger(__name__)
 SERVER_MAGIC = "SERVER_MAGIC"