MagicStack / MagicStack/asyncpg

Python 3.13.2: TestConnectParams.test_connect_params fails with ValueError: Invalid IPv6 URL

Offen
#1,236 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
8.1k
Forks
468
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Based on historical test-builds of the python-asyncpg package in Fedora, this appears to be a regression from Python 3.13.1 to 3.13.2.

$ python3.13 --version
Python 3.13.2
$ python3.13 -m venv _e
$ . _e/bin/activate
(_e) $ pip install -e .[gssauth,test]
(_e) $ pip install pytest
(_e) $ python -m pytest
[…]
========================================================================================== short test summary info ===========================================================================================
FAILED tests/test__sourcecode.py::TestCodeQuality::test_flake8 - AssertionError: flake8 validation failed:
FAILED tests/test_codecs.py::TestCodecs::test_custom_codec_binary - asyncpg.exceptions.FeatureNotSupportedError: extension "hstore" is not available
FAILED tests/test_codecs.py::TestCodecs::test_custom_codec_text - asyncpg.exceptions.FeatureNotSupportedError: extension "hstore" is not available
FAILED tests/test_codecs.py::TestCodecs::test_extra_codec_alias - asyncpg.exceptions.FeatureNotSupportedError: extension "hstore" is not available
FAILED tests/test_codecs.py::TestCodecs::test_unhandled_type_fallback - asyncpg.exceptions.FeatureNotSupportedError: extension "isn" is not available
FAILED tests/test_codecs.py::TestCodecs::test_unknown_type_text_fallback - asyncpg.exceptions.FeatureNotSupportedError: extension "citext" is not available
FAILED tests/test_connect.py::TestConnectParams::test_connect_params - ValueError: Invalid IPv6 URL
FAILED tests/test_connect.py::TestConnectionAttributes::test_prefer_standby_picks_master_when_standby_is_down - TimeoutError
FAILED tests/test_introspection.py::TestIntrospection::test_introspection_no_stmt_cache_01 - asyncpg.exceptions.FeatureNotSupportedError: extension "hstore" is not available
FAILED tests/test_introspection.py::TestIntrospection::test_introspection_no_stmt_cache_02 - asyncpg.exceptions.FeatureNotSupportedError: extension "hstore" is not available
===================================================================== 10 failed, 300 passed, 3 skipped, 3 warnings in 132.00s (0:02:12) ======================================================================

The subject of this report is:

FAILED tests/test_connect.py::TestConnectParams::test_connect_params - ValueError: Invalid IPv6 URL

The full output for that failure is:

___________________________________________________________________________________ TestConnectParams.test_connect_params ____________________________________________________________________________________
Traceback (most recent call last):
  File "/usr/lib64/python3.13/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.13/unittest/case.py", line 651, in run
    self._callTestMethod(testMethod)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib64/python3.13/unittest/case.py", line 606, in _callTestMethod
    if method() is not None:
       ~~~~~~^^
  File "/home/ben/src/forks/asyncpg/tests/test_connect.py", line 1237, in test_connect_params
    self.run_testcase(testcase)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/home/ben/src/forks/asyncpg/tests/test_connect.py", line 1154, in run_testcase
    addrs, params = connect_utils._parse_connect_dsn_and_args(
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        dsn=dsn, host=host, port=port, user=user, password=password,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...   
        target_session_attrs=target_session_attrs,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        krbsrvname=krbsrvname, gsslib=gsslib)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ben/src/forks/asyncpg/asyncpg/connect_utils.py", line 282, in _parse_connect_dsn_and_args
    parsed = urllib.parse.urlparse(dsn)
  File "/usr/lib64/python3.13/urllib/parse.py", line 395, in urlparse
    splitresult = urlsplit(url, scheme, allow_fragments)
  File "/usr/lib64/python3.13/urllib/parse.py", line 516, in urlsplit
    _check_bracketed_netloc(netloc)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/usr/lib64/python3.13/urllib/parse.py", line 451, in _check_bracketed_netloc
    raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit tests/test_connect.py::TestConnectParams::test_connect_params und reproduziere den Fehler unter Python 3.13.2. Lies asyncpg/connect_utils.py im Umfeld von _parse_connect_dsn_and_args und urllib.parse.urlparse; als erledigt gilt die Aufgabe, wenn der gezielte Test nicht mehr ValueError: Invalid IPv6 URL auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
postgresql, python
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.