Commit graph

50483 commits

Author SHA1 Message Date
Barney Gale
b4efdf8cda
GH-106330: Fix matching of empty path in pathlib.PurePath.match() (GH-106331)
We match paths using the `_lines` attribute, which is derived from the
path's string representation. The bug arises because an empty path's string
representation is `'.'` (not `''`), which is matched by the `'*'` wildcard.
2023-07-03 21:29:44 +01:00
Erlend E. Aasland
7f4c8121db
gh-106368: Increase Argument Clinic test coverage (#106369)
Add tests for 'self' and 'defining_class' converter requirements.
2023-07-03 20:16:50 +00:00
Erlend E. Aasland
0da4c883cf
gh-106359: Fix corner case bugs in Argument Clinic converter parser (#106361)
DSLParser.parse_converter() could return unusable kwdicts in some rare cases

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-07-03 13:14:59 +00:00
Mario Corchero
d65b783b69
gh-61215: New mock to wait for multi-threaded events to happen (#16094)
mock: Add `ThreadingMock` class

Add a new class that allows to wait for a call to happen by using
`Event` objects. This mock class can be used to test and validate
expectations of multithreading code.

It uses two attributes for events to distinguish calls with any argument
and calls with specific arguments.

The calls with specific arguments need a lock to prevent two calls in
parallel from creating the same event twice.

The timeout is configured at class and constructor level to allow users
to set a timeout, we considered passing it as an argument to the
function but it could collide with a function parameter. Alternatively
we also considered passing it as positional only but from an API
caller perspective it was unclear what the first number meant on the
function call, think `mock.wait_until_called(1, "arg1", "arg2")`, where
1 is the timeout.

Lastly we also considered adding the new attributes to magic mock
directly rather than having a custom mock class for multi threading
scenarios, but we preferred to have specialised class that can be
composed if necessary. Additionally, having added it to `MagicMock`
directly would have resulted in `AsyncMock` having this logic, which
would not work as expected, since when if user "waits" on a
coroutine does not have the same meaning as waiting on a standard
call.

Co-authored-by: Karthikeyan Singaravelan <tir.karthi@gmail.com>
2023-07-03 07:56:54 +01:00
Victor Stinner
feb51f3a64
gh-106320: Remove private _PyTraceMalloc C API functions (#106324)
* Remove private _PyTraceMalloc C API functions: move them to the
  internal C API.
* Don't export most of these functions anymore, but still export
  _PyTraceMalloc_GetTraceback() used by tests.
* Rename Include/tracemalloc.h to Include/cpython/tracemalloc.h
2023-07-02 00:49:18 +00:00
Kirill Podoprigora
0530f4f646
gh-102541: Fix Helper.help("mod") for non-existent mod (#105934)
If the output arg to Helper() is a stream rather than the default None, which means 'page to stdout', the ImportError from pydoc.resolve is currently not caught in pydoc.doc. The same error is caught when output is None.
---------

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2023-07-01 18:46:06 -04:00
Victor Stinner
46d77610fc
gh-106316: Remove pytime.h header file (#106317)
Remove the "cpython/pytime.h" header file: it only contained private
functions. Move functions to the internal pycore_time.h header file.

Move tests from _testcapi to _testinternalcapi. Rename also test
methods to have the same name than tested C functions.

No longer export these functions:

* _PyTime_Add()
* _PyTime_As100Nanoseconds()
* _PyTime_FromMicrosecondsClamp()
* _PyTime_FromTimespec()
* _PyTime_FromTimeval()
* _PyTime_GetPerfCounterWithInfo()
* _PyTime_MulDiv()
2023-07-01 22:27:18 +00:00
Barney Gale
c2622a0d82
GH-89812: Improve test for pathlib.Path.stat() (GH-106064)
Make assertions about the `st_mode`, `st_ino` and `st_dev` attributes of
the stat results from two files and a directory, rather than checking if
`chmod()` affects `st_mode` (which is already tested elsewhere).
2023-07-01 13:33:29 +01:00
Barney Gale
cbc33e4aed
GH-89812: Miscellaneous pathlib test improvements (GH-106063)
- Split out dedicated test for unbuffered `open()`
- Split out dedicated test for `is_mount()` at the filesystem root
- Avoid `os.stat()` when checking that empty paths point to '.'
- Remove unnecessary `rmtree()` call
- Remove unused `assertSame()` method
2023-07-01 12:29:02 +00:00
Barney Gale
6e01055e15
GH-89812: Test that pathlib.Path.is_junction() returns false (GH-106062)
Slightly expand the test coverage of `is_junction()`. The existing test
only checks that `os.path.isjunction()` is called under-the-hood.
2023-07-01 12:58:30 +01:00
Barney Gale
3fd99b5a97
GH-89812: Make symlink support configurable in pathlib tests. (GH-106060)
Adjust the pathlib tests to add a new `PathTest.can_symlink` class
attribute, which allows us to enable or disable symlink support in tests.
A (near-)future commit will add an `AbstractPath` class; its tests will
hard-code the value to `True` or `False` depending on a stub subclass's
capabilities.
2023-07-01 12:24:34 +01:00
Nikita Sobolev
eb7d6e7ad8
gh-105486: Change the repr of ParamSpec list of args in GenericAlias (#105488) 2023-07-01 00:04:50 +00:00
Barney Gale
e212618baf
GH-89812: Simplify creation of symlinks in pathlib tests. (GH-106061)
Remove `PathTest.dirlink()` function. Symlinks in `PathTest.setUp()` are
created using `os.symlink()` directly; symlinks in test functions use
`Path.symlink_to()` in order to make the tests applicable to a
(near-)future `AbstractPath` class.
2023-07-01 00:46:44 +01:00
Nikita Sobolev
46c1097868
gh-106145: Make end_{lineno,col_offset} required on type_param nodes (#106224) 2023-06-30 23:45:08 +00:00
Nikita Sobolev
904aef9942
GH-106135: Add more edge-"cases" to test_patma (GH-106271) 2023-06-30 19:39:50 +00:00
Victor Stinner
2efdd2a14e
gh-106023: Remove _PyObject_FastCall() function (#106265) 2023-06-30 11:46:43 +02:00
Tian Gao
cea9d4ea82
GH-106152: Add PY_THROW event to cProfile (GH-106161) 2023-06-29 16:14:09 -07:00
Brandt Bucher
7b2d94d875
GH-106008: Make implicit boolean conversions explicit (GH-106003) 2023-06-29 13:49:54 -07:00
hms
8bff940ad6
gh-105775: Convert LOAD_CLOSURE to a pseudo-op (#106059)
This enables super-instruction formation,
removal of checks for uninitialized variables,
and frees up an instruction.
2023-06-29 09:34:00 -07:00
Charlie Zhao
fb0d9b9ac1
gh-106078: Convert _decimal types to heap types (#106079)
- Establish global state struct
- Convert static types to heap types and add them to global state:
    * PyDecContextManager_Type
    * PyDecContext_Type
    * PyDecSignalDictMixin_Type
    * PyDec_Type
- Add to global state:
    * PyDecSignalDict_Type
    * DecimalTuple

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2023-06-29 10:27:20 +00:00
Serhiy Storchaka
0e24499129
gh-89392: Make test_decimal discoverable (GH-106209) 2023-06-29 12:53:22 +03:00
Nikita Sobolev
3fb7c608e5
gh-106194: Rename duplicated tests in test_curses (#106196) 2023-06-28 14:41:08 -06:00
Hood Chatham
4bde89462a
GH-106214: Fix test_opcache to skip threaded tests on non-threaded platforms (GH-106166)
This skips the test added in GH-105953 on threadless builds.
2023-06-28 13:04:59 -07:00
Nikita Sobolev
c283a0cff5
gh-106197: Deduplicate tests in test_buffer (#106198) 2023-06-28 07:43:41 -07:00
Nikita Sobolev
d830c4a944
gh-106200: Remove unused imports (#106201) 2023-06-28 11:55:41 +00:00
Inada Naoki
a3dd8cce58
gh-106162: fix test_array modifies warning filter (#106181) 2023-06-28 16:50:36 +09:00
Victor Stinner
adaacf26d3
GH-104584: Fix test_capi.test_counter_optimizer() when run twice (#106171)
test_counter_optimizer() and test_long_loop() of test_capi now create
a new function at each call. Otherwise, the optimizer counters are
not the expected values when the test is run more than once.
2023-06-28 04:41:21 +02:00
Victor Stinner
2ac3eec103
gh-101634: regrtest reports decoding error as failed test (#106169)
When running the Python test suite with -jN option, if a worker stdout
cannot be decoded from the locale encoding report a failed testn so the
exitcode is non-zero.
2023-06-28 04:26:52 +02:00
T. Wouters
161012fc25
GH-106160: Fix test_gzip failing under WASI, which does not have zlib. (#106167)
Fix test_gzip's failure under WASI, which does not have zlib, by using
test.support.import_helper.import_module to import zlib. (gzip
unconditionally imports zlib, so this does not cause any new skips.)
2023-06-28 00:55:11 +00:00
Terry Jan Reedy
eaa1eae55e
IDLE: Condense run.main threading.Thread start. (#106125)
Use daemon argument added in 3.3 and directly call .start.
Remove now unused 'sockthread' name.
2023-06-27 13:12:56 -04:00
Łukasz Langa
d3af83b934
Revert "GH-96145: Add AttrDict to JSON module for use with object_hook (#96146)" (#105948)
This reverts commit 1f0eafa844.
2023-06-26 20:35:53 +02:00
Barney Gale
219effa876
GH-105793: Add follow_symlinks argument to pathlib.Path.is_dir() and is_file() (GH-105794)
Brings `pathlib.Path.is_dir()` and `in line with `os.DirEntry.is_dir()`, which
will be important for implementing generic path walking and globbing.
Likewise `is_file()`.
2023-06-26 17:58:17 +01:00
Bruce Eckel
1a2bc94fc2
Update test.support.interpreters to include missing RunFailedError import (#103841)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-06-26 17:30:20 +02:00
Gabriel Venberg
dac3d389e7
gh-104527: zippapp will now avoid appending an archive to itself. (gh-106076)
zippapp will now avoid appending an archive to itself.
2023-06-26 10:09:08 +01:00
James Webber
a12e8ffb49
gh-106075: add asyncio.taskgroups.__all__ to asyncio.__all__ (#106090)
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2023-06-26 07:54:03 +00:00
Alex Waygood
93a970ffbc
gh-106046: Improve error message from os.fspath if __fspath__ is set to None (#106082) 2023-06-26 00:06:12 +01:00
chgnrdv
d2cbb6e918
gh-105987: Fix reference counting issue in _asyncio._swap_current_task (#105989) 2023-06-24 10:53:24 +05:30
Erlend E. Aasland
4849a80dd1
gh-102251: Disable non-rerunnable test in test_import (#106013) 2023-06-24 01:34:05 +02:00
Irit Katriel
d8ca5a11bc
gh-105730: support more callables in ExceptionGroup.split() and subgroup() (#106035) 2023-06-23 19:47:47 +01:00
Erlend E. Aasland
41ad4dfc04
gh-105063: Disable test_peg_generator.TestCParser bco. ref leaks (#106024)
Since gh-104798 (Use setuptools in peg-generator and reenable
tests), the TestCParser test case has been producing ref leaks.
2023-06-23 19:04:17 +02:00
Alex Waygood
9499b0f138
gh-105974: Revert unintentional behaviour change for protocols with non-callable members and custom __subclasshook__ methods (#105976) 2023-06-23 14:59:25 +00:00
Erlend E. Aasland
37c5c40125
gh-85136: Remove disabled remote IMAP tests (#106022)
Tests had been disabled since Jun 12, 2020 (gh-20836).
2023-06-23 13:39:50 +00:00
Brandt Bucher
403a574b00
Test specialization's thread-safety (GH-105953) 2023-06-22 22:02:38 +00:00
chgnrdv
cd5280367a
gh-105979: Fix exception handling in unmarshal_frozen_code (Python/import.c) (#105980) 2023-06-22 21:30:19 +00:00
Pablo Galindo Salgado
13237a2da8
gh-98931: Add custom error messages to invalid import/from with multiple targets (#105985)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-06-22 15:56:40 +00:00
Barney Gale
a8006706f7
GH-89812: Add pathlib.UnsupportedOperation (GH-105926)
This new exception type is raised instead of `NotImplementedError` when
a path operation is not supported. It can be raised from `Path.readlink()`,
`symlink_to()`, `hardlink_to()`, `owner()` and `group()`. In a future
version of pathlib, it will be raised by `AbstractPath` for these methods
and others, such as `AbstractPath.mkdir()` and `unlink()`.
2023-06-22 14:35:51 +01:00
Mark Shannon
04492cbc9a
GH-91095: Specialize calls to normal Python classes. (GH-99331) 2023-06-22 09:48:19 +01:00
Victor Stinner
9c44656feb
gh-105927: Add PyWeakref_GetRef() function (#105932)
Add tests on PyWeakref_NewRef(), PyWeakref_GetObject(),
PyWeakref_GET_OBJECT() and PyWeakref_GetRef().
2023-06-21 11:40:09 +02:00
Lysandros Nikolaou
6e40ee6e84
gh-105915: Fix SyntaxWarning becoming a SyntaxError with -We in test_fstring (#105943) 2023-06-20 16:13:07 +02:00
Lysandros Nikolaou
4b431d2e90
gh-105915: Add 'r' prefix to not emit SyntaxWarning in test_fstring (#105940)
Co-authored-by: @sunmy2019
2023-06-20 14:49:00 +02:00