Commit graph

50535 commits

Author SHA1 Message Date
Pablo Galindo Salgado
21f4e6d6cb
[3.12] gh-109114: Relax the check for invalid lambdas inside f-strings to avoid false positives (GH-109121). (#109155)
(cherry picked from commit 5bda2f637e)

Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
2023-09-12 15:52:25 +00:00
Miss Islington (bot)
8208657f3d
[3.12] gh-109118: Disallow nested scopes within PEP 695 scopes within classes (GH-109196) (#109297)
gh-109118: Disallow nested scopes within PEP 695 scopes within classes (GH-109196)

Fixes GH-109118. Fixes GH-109194.

(cherry picked from commit b88d9e75f6)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Carl Meyer <carl@oddbird.net>
2023-09-12 16:31:26 +02:00
Miss Islington (bot)
7479a7aca2
[3.12] gh-109295: Fix test_os.test_access_denied() for TEMP=cwd (GH-109299) (#109304)
gh-109295: Fix test_os.test_access_denied() for TEMP=cwd (GH-109299)

Fix test_os.test_access_denied() when the TEMP environment variable
is equal to the current working directory. Run the test using a
different filename, since self.fname already exists in this case.
(cherry picked from commit 7dedfd36dc)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-12 16:23:03 +02:00
Miss Islington (bot)
8acfb42ea3
[3.12] gh-109295: Clean up multiprocessing in test_asyncio and test_compileall (GH-109298) (#109301)
gh-109295: Clean up multiprocessing in test_asyncio and test_compileall (GH-109298)

test_asyncio and test_compileall now clean up multiprocessing by
calling multiprocessing _cleanup_tests(): explicitly clean up
resources and stop background processes like the resource tracker.
(cherry picked from commit 09ea4b8706)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-12 16:22:43 +02:00
Miss Islington (bot)
2004e12d8d
[3.12] gh-109195: fix source location for super load before LOAD_SUPER_ATTR (GH-109289) (#109291)
gh-109195: fix source location for super load before LOAD_SUPER_ATTR (GH-109289)
(cherry picked from commit ceeb4173ae)

Co-authored-by: Carl Meyer <carl@oddbird.net>
2023-09-12 16:20:41 +02:00
Miss Islington (bot)
33ee98b217
[3.12] gh-90805: Make sure test_functools works with and without _functoolsmodule (GH-108644) (#109275)
gh-90805: Make sure test_functools works with and without _functoolsmodule (GH-108644)
(cherry picked from commit baa6dc8e38)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2023-09-12 16:17:05 +02:00
Miss Islington (bot)
5305cdc39b
[3.12] gh-109182: Fix and improve tests for gh-108654 (GH-109189) (#109271)
gh-109182: Fix and improve tests for gh-108654 (GH-109189)
(cherry picked from commit c0f488b88f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-12 16:15:40 +02:00
Mark Shannon
3efe7bc65f
[3.12] GH-108976. Keep monitoring data structures valid during de-optimization during callback. (GH-109131) (#109268)
GH-108976. Keep monitoring data structures valid during de-optimization during callback. (GH-109131)
2023-09-12 16:14:49 +02:00
Miss Islington (bot)
5e917a0b09
[3.12] Test DocTestFinder directly instead of calling support.run_doctest() (GH-108917) (#109259)
Test DocTestFinder directly instead of calling support.run_doctest() (GH-108917)
(cherry picked from commit 0abc935086)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-12 16:13:45 +02:00
Miss Islington (bot)
df64210ad0
[3.12] gh-109230: test_pyexpat no longer depends on the current directory (GH-109233) (#109241)
gh-109230: test_pyexpat no longer depends on the current directory (GH-109233)

Fix test_pyexpat.test_exception(): it can now be run from a directory
different than Python source code directory. Before, the test failed
in this case.

Skip the test if Modules/pyexpat.c source is not available. Skip also
the test on Python implementations other than CPython.
(cherry picked from commit e55aab9578)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-12 16:03:47 +02:00
Miss Islington (bot)
b3613815d4
[3.12] gh-109237: Fix test_site for non-ASCII working directory (GH-109238) (#109239)
gh-109237: Fix test_site for non-ASCII working directory (GH-109238)

Fix test_site.test_underpth_basic() when the working directory
contains at least one non-ASCII character: encode the "._pth" file to
UTF-8 and enable the UTF-8 Mode to use UTF-8 for the child process
stdout.
(cherry picked from commit cbb3a6f8ad)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-12 16:03:18 +02:00
Miss Islington (bot)
888bcf49c0
[3.12] Fix an ironic typo in a code comment. (gh-109186) (#109188)
Fix an ironic typo in a code comment. (gh-109186)
(cherry picked from commit 75cd86599b)

Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
2023-09-12 16:00:13 +02:00
Jelle Zijlstra
acde502e8a
[3.12] gh-109118: Fix runtime crash when NameError happens in PEP 695 function (GH-109123) (#109173)
* gh-109118: Fix runtime crash when NameError happens in PEP 695 function (#109123)

(cherry picked from commit 17f994174d)

* [3.12] gh-109118: Fix runtime crash when NameError happens in PEP 695 function (GH-109123).
(cherry picked from commit 17f994174d)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2023-09-12 15:59:09 +02:00
Miss Islington (bot)
c76f4b97dc
[3.12] GH-109067: fix randomly failing test_async_gen_asyncio_gc_aclose_09 test (GH-109142) (#109149)
GH-109067: fix randomly failing `test_async_gen_asyncio_gc_aclose_09` test (GH-109142)

Use `asyncio.sleep(0)` instead of short sleeps.
(cherry picked from commit ccd48623d4)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2023-09-12 15:56:02 +02:00
Miss Islington (bot)
ca848bbf78
[3.12] gh-109022: [Enum] require names=() to create empty enum type (GH-109048) (#109122)
gh-109022: [Enum] require `names=()` to create empty enum type (GH-109048)

add guard so that ``Enum('bar')`` raises a TypeError instead of
creating a new enum class called `bar`.  To create the new but
empty class, use:

    huh = Enum('bar', names=())
(cherry picked from commit c74e440168)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
2023-09-12 15:53:16 +02:00
Miss Islington (bot)
d533ab17ec
[3.12] gh-108732: include comprehension locals in frame.f_locals (GH-109026) (#109097)
gh-108732: include comprehension locals in frame.f_locals (GH-109026)
(cherry picked from commit f2584eade3)

Co-authored-by: Carl Meyer <carl@oddbird.net>
Co-authored-by: Radislav Chugunov <52372310+chgnrdv@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2023-09-12 15:50:29 +02:00
Miss Islington (bot)
af83d1e821
[3.12] gh-106922: Fix error location for constructs with spaces and parentheses (GH-108959) (#109147)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
2023-09-08 17:04:28 +00:00
Miss Islington (bot)
a1ba0e531c
[3.12] gh-103186: Suppress RuntimeWarning about unclosed async iterator in test_sys_settrace (GH-109075) (#109138)
gh-103186: Suppress RuntimeWarning about unclosed async iterator in test_sys_settrace (GH-109075)
(cherry picked from commit d485551c9d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 17:56:11 +02:00
Miss Islington (bot)
68ba35eecb
[3.12] gh-68403: Fix test_coverage in test_trace (GH-108910) (#109104)
gh-68403: Fix test_coverage in test_trace (GH-108910)

Its behavior no longer affected by test running options such as -m.
(cherry picked from commit 7e1a7abb98)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 15:25:18 +02:00
Miss Islington (bot)
41ff5b0674
[3.12] gh-75743: Restore test_timeout.testConnectTimeout() (GH-109087) (#109103)
gh-75743: Restore test_timeout.testConnectTimeout() (GH-109087)

This un-skips this test now that pythontest.net implements appropriate firewall
rules for it.
(cherry picked from commit 1829a3c9a3)

Co-authored-by: Ee Durbin <ewdurbin@gmail.com>
2023-09-08 15:24:55 +02:00
Miss Islington (bot)
02e51f86d8
[3.12] gh-103186: Remove debug print in test_sys_settrace (GH-109077) (#109084)
gh-103186: Remove debug print in test_sys_settrace (GH-109077)
(cherry picked from commit e4bb0026b9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 15:22:19 +02:00
Miss Islington (bot)
29404b6d25
[3.12] gh-103186: Suppress and assert expected RuntimeWarnings in test_sys_settrace (GH-103244) (#109066)
gh-103186: Suppress and assert expected RuntimeWarnings in test_sys_settrace (GH-103244)

Caused as a result of frame manipulation where locals are never assigned / initialised.
(cherry picked from commit 3e53ac9903)

Co-authored-by: Ijtaba Hussain <ijtabahussain@live.com>
2023-09-08 15:21:38 +02:00
Miss Islington (bot)
8c9f5f714e
[3.12] test.pythoninfo logs freedesktop_os_release() (GH-109057) (#109064)
test.pythoninfo logs freedesktop_os_release() (GH-109057)
(cherry picked from commit babdced23f)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-08 15:20:05 +02:00
Miss Islington (bot)
55d7e8fef1
[3.12] gh-108851: Fix tomllib recursion tests (GH-108853) (#109012)
gh-108851: Fix tomllib recursion tests (GH-108853)

* Add get_recursion_available() and get_recursion_depth() functions
  to the test.support module.
* Change infinite_recursion() default max_depth from 75 to 100.
* Fix test_tomllib recursion tests for WASI buildbots: reduce the
  recursion limit and compute the maximum nested array/dict depending
  on the current available recursion limit.
* test.pythoninfo logs sys.getrecursionlimit().
* Enhance test_sys tests on sys.getrecursionlimit()
  and sys.setrecursionlimit().
(cherry picked from commit 8ff1142578)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-08 15:18:02 +02:00
Miss Islington (bot)
038b0a9cb0
[3.12] gh-89392: Use unittest test runner for doctests in test_getopt (GH-108916) (#108919)
gh-89392: Use unittest test runner for doctests in test_getopt (GH-108916)
(cherry picked from commit f980cc19b9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 15:17:14 +02:00
Miss Islington (bot)
da02508a0e
[3.12] gh-89392: Use normal unittest runner in test_type_cache (GH-108911) (#108913)
gh-89392: Use normal unittest runner in test_type_cache (GH-108911)
(cherry picked from commit eaabaac7c0)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 15:16:55 +02:00
Miss Islington (bot)
4b749ba470
[3.12] gh-91960: Skip test_gdb if gdb cannot retrive Python frames (GH-108999) (#109010)
gh-91960: Skip test_gdb if gdb cannot retrive Python frames (GH-108999)

Skip test_gdb if gdb is unable to retrieve Python frame objects: if a
frame is "<optimized out>". When Python is built with "clang -Og",
gdb can fail to retrive the 'frame' parameter of
_PyEval_EvalFrameDefault(). In this case, tests like py_bt() are
likely to fail. Without getting access to Python frames,
python-gdb.py is mostly clueless on retrieving the Python traceback.
Moreover, test_gdb is no longer skipped on macOS if Python is built
with Clang.
(cherry picked from commit fbce43a251)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-08 15:16:16 +02:00
Miss Islington (bot)
9441005bcf
[3.12] gh-108983: Add more PEP 526 tests to test_grammar (GH-108984) (#109000)
gh-108983: Add more PEP 526 tests to `test_grammar` (GH-108984)
(cherry picked from commit 1fb20d42c5)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2023-09-08 15:16:02 +02:00
Miss Islington (bot)
b9dfe60e8d
[3.12] gh-108962: Skip test_tempfile.test_flags() if not supported (GH-108964) (#108967)
gh-108962: Skip test_tempfile.test_flags() if not supported (GH-108964)

Skip test_tempfile.test_flags() if chflags() fails with "OSError:
[Errno 45] Operation not supported" (ex: on FreeBSD 13).
(cherry picked from commit cd2ef21b07)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-08 15:14:57 +02:00
Victor Stinner
0855b2c8b6
[3.12] gh-108834: Sync libregrtest with the main branch (#108966)
* gh-108834: regrtest reruns failed tests in subprocesses (#108839)

When using --rerun option, regrtest now re-runs failed tests
in verbose mode in fresh worker processes to have more
deterministic behavior. So it can write its final report even
if a test killed a worker progress.

Add --fail-rerun option to regrtest: exit with non-zero exit code
if a test failed pass passed when re-run in verbose mode (in a
fresh process). That's now more useful since tests can pass
when re-run in a fresh worker progress, whereas they failed
when run after other tests when tests are run sequentially.

Rename --verbose2 option (-w) to --rerun. Keep --verbose2 as a
deprecated alias.

Changes:

* Fix and enhance statistics in regrtest summary. Add "(filtered)"
  when --match and/or --ignore options are used.
* Add RunTests class.
* Add TestResult.get_rerun_match_tests() method
* Rewrite code to serialize/deserialize worker arguments as JSON
  using a new WorkerJob class.
* Fix stats when a test is run with --forever --rerun.
* If failed test names cannot be parsed, log a warning and don't
  filter tests.
* test_regrtest.test_rerun_success() now uses a marker file, since
  the test is re-run in a separated process.
* Add tests on normalize_test_name() function.
* Add test_success() and test_skip() tests to test_regrtest.

(cherry picked from commit 31c2945f14)

* gh-108834: regrtest --fail-rerun exits with code 5 (#108896)

When the --fail-rerun option is used and a test fails and then pass,
regrtest now uses exit code 5 ("rerun) instead of 2 ("bad test").

(cherry picked from commit 1170d5a292)

* gh-108416: Mark slow but not CPU bound test methods with requires_resource('walltime') (GH-108480)

(cherry picked from commit 1e0d62793a)

* Manually sync Lib/test/libregrtest/ from main

---------

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-08 15:14:17 +02:00
Miss Islington (bot)
c9dc2bc0de
[3.12] gh-109015: Add test.support.socket_helper.tcp_blackhole() (GH-109016) (#109041)
gh-109015: Add test.support.socket_helper.tcp_blackhole() (GH-109016)

Skip test_asyncio, test_imaplib and test_socket tests if FreeBSD TCP
blackhole is enabled (net.inet.tcp.blackhole=2).
(cherry picked from commit a52a350977)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-08 15:12:29 +02:00
Miss Islington (bot)
579d782276
[3.12] Docs: Fix typo in datetime.tzinfo docstring (GH-107257) (#109032)
Docs: Fix typo in datetime.tzinfo docstring (GH-107257)
(cherry picked from commit 60a9eea3f5)

Co-authored-by: Mikhail Samylov <Samylov-Mikhail@yandex.com>
Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2023-09-08 15:11:32 +02:00
Miss Islington (bot)
ef0dbfb5a8
[3.12] GH-108202: Document `calendar`'s command-line interface (GH-109020) (#109030)
GH-108202: Document ``calendar``'s command-line interface (GH-109020)
(cherry picked from commit f0f96a9f40)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2023-09-08 15:11:16 +02:00
Thomas Wouters
40913a56ed Python 3.12.0rc2 2023-09-05 23:57:19 +02:00
Miss Islington (bot)
495ba70356
[3.12] gh-108469: Update ast.unparse for unescaped quote support from PEP701 [3.12] (GH-108553) (#108960)
Co-authored-by: Anthony Shaw <anthony.p.shaw@gmail.com>
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
2023-09-05 20:49:55 +00:00
Miss Islington (bot)
460043b554
[3.12] gh-108927: Fix test_import + test_importlib + test_unittest problem (GH-108929) (#108954)
gh-108927: Fix test_import + test_importlib + test_unittest problem (GH-108929)
(cherry picked from commit 3f89b25763)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2023-09-05 20:43:47 +00:00
Mark Shannon
7ee021f999
[3.12] GH-108390: Prevent non-local events being set with sys.monitoring.set_local_events() (GH-108420) (#108899)
* GH-108390: Prevent non-local events being set with `sys.monitoring.set_local_events()` (GH-108420)

* Restore generated objects

* Restore size of monitoring arrays in code object for 3.12 ABI compatibility.

* Update ABI file
2023-09-05 11:29:38 +00:00
Serhiy Storchaka
5121faabd1
[3.12] gh-89392: Remove support of test_main() in libregrtest (GH-108876) (#108897)
[3.12] gh-89392: Remove support of test_main() in libregrtest (GH-108876).
(cherry picked from commit 04a0830b00)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-09-05 11:18:41 +00:00
Serhiy Storchaka
e76b0b7783
[3.12] bpo-45229: Make ElementTree tests discoverable (GH-108859) (#108873)
[3.12] bpo-45229: Make ElementTree tests discoverable (GH-108859).
(cherry picked from commit 074ac1f72e)
2023-09-05 12:51:37 +02:00
Serhiy Storchaka
88ff02e3c5
[3.12] gh-89392: Remove test_main() in test_netrc (GH-108860) (#108872)
[3.12] gh-89392: Remove test_main() in test_netrc (GH-108860).
(cherry picked from commit 76f3c043b6)

Co-authored-by: T. Wouters <thomas@python.org>
2023-09-04 21:13:02 +02:00
Miss Islington (bot)
bce77915b6
[3.12] Disable differing_test_runners health check (GH-108886) (#108887)
Disable `differing_test_runners` health check (GH-108886)
(cherry picked from commit 6ead5bd6ae)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2023-09-04 21:11:16 +02:00
Serhiy Storchaka
d5c2d453fd
[3.12] gh-89392: Make test_pep646_syntax discoverable (GH-108861) (#108871)
* [3.12] gh-89392: Make test_pep646_syntax discoverable (GH-108861).
(cherry picked from commit d0b22f6bd8)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>

* Add "import unittest".
2023-09-04 18:41:42 +02:00
Łukasz Langa
e0f6080819
[3.12] gh-46376: Revert "Return existing pointer when possible in ctypes (GH-107131) (GH-107487)" (#108864)
This reverts commit 54aaaadef8.

Co-authored-by: T. Wouters <thomas@python.org>
2023-09-04 16:24:16 +02:00
Miss Islington (bot)
7b936ac12e
[3.12] Reorder some test's decorators (GH-108804) (#108844)
Reorder some test's decorators (GH-108804)

For example, do not demand the 'cpu' resource if the test cannot be run
due to non-working threads.
(cherry picked from commit 509bb61977)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-04 13:47:07 +02:00
Victor Stinner
c8cf6be213
[3.12] gh-108822: regrtest computes statistics (#108793) (#108833)
gh-108822: regrtest computes statistics (#108793)

test_netrc, test_pep646_syntax and test_xml_etree now return results
in the test_main() function.

Changes:

* Rewrite TestResult as a dataclass with a new State class.
* Add test.support.TestStats class and Regrtest.stats_dict attribute.
* libregrtest.runtest functions now modify a TestResult instance
  in-place.
* libregrtest summary lists the number of run tests and skipped
  tests, and denied resources.
* Add TestResult.has_meaningful_duration() method.
* Compute TestResult duration in the upper function.
* Use time.perf_counter() instead of time.monotonic().
* Regrtest: rename 'resource_denieds' attribute to 'resource_denied'.
* Rename CHILD_ERROR to MULTIPROCESSING_ERROR.
* Use match/case syntadx to have different code depending on the
  test state.

Notes on the backport: doctest.TestResults.skipped is a new feature
in Python 3.13, so don't use it in the backport.

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
(cherry picked from commit d4e534cbb3)
2023-09-04 13:45:50 +02:00
Miss Islington (bot)
dcaacd9066
[3.12] gh-108416: Mark slow test methods with @requires_resource('cpu') (GH-108421) (#108798)
gh-108416: Mark slow test methods with @requires_resource('cpu') (GH-108421)

Only mark tests which spend significant system or user time,
by itself or in subprocesses.
(cherry picked from commit f3ba0a74cd)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-09-03 01:22:33 +02:00
Miss Islington (bot)
b862c25922
[3.12] gh-106392: Fix inconsistency in deprecation warnings (GH-106436) (#108792)
gh-106392: Fix inconsistency in deprecation warnings (GH-106436)

They used "datetime" to refer to both the object and the module.
(cherry picked from commit d5c5d4bfd3)

Co-authored-by: William Andrea <william.j.andrea@gmail.com>
2023-09-02 23:44:28 +02:00
Miss Islington (bot)
4dc07d2bde
[3.12] Make test_fcntl quiet (GH-108758) (#108760)
Make test_fcntl quiet (GH-108758)

Running test_fcntl logs two "struct.pack: ..." lines because
multiprocessing imports test_fcntl twice with
test.support.verbose=1. Move get_lockdata() inside TestFcntl test
case and only call it where it's needed, to stop logging these lines.
(cherry picked from commit 23f54c1200)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-09-01 15:36:52 +02:00
Miss Islington (bot)
56683097f4
[3.12] gh-107805: Fix signatures of module-level generated functions in turtle (GH-107807) (#108749)
gh-107805: Fix signatures of module-level generated functions in `turtle` (GH-107807)
(cherry picked from commit 044b8b3b6a)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-09-01 15:32:35 +02:00
Miss Islington (bot)
8c3793a539
[3.12] gh-108682: [Enum] raise TypeError if super().__new__ called in custom __new__ (GH-108704) (#108733)
gh-108682: [Enum] raise TypeError if super().__new__ called in custom __new__ (GH-108704)

When overriding the `__new__` method of an enum, the underlying data type should be created directly; i.e. .

    member = object.__new__(cls)
    member = int.__new__(cls, value)
    member = str.__new__(cls, value)

Calling `super().__new__()` finds the lookup version of `Enum.__new__`, and will now raise an exception when detected.
(cherry picked from commit d48760b2f1)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
2023-09-01 00:04:55 +02:00