summaryrefslogtreecommitdiffstats
path: root/Lib/test
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-98401: Invalid escape sequences emits SyntaxWarning (#99011)Victor Stinner2022-11-033-18/+18
| | | | | | | | | | | | | | | | | | | | | | A backslash-character pair that is not a valid escape sequence now generates a SyntaxWarning, instead of DeprecationWarning. For example, re.compile("\d+\.\d+") now emits a SyntaxWarning ("\d" is an invalid escape sequence), use raw strings for regular expression: re.compile(r"\d+\.\d+"). In a future Python version, SyntaxError will eventually be raised, instead of SyntaxWarning. Octal escapes with value larger than 0o377 (ex: "\477"), deprecated in Python 3.11, now produce a SyntaxWarning, instead of DeprecationWarning. In a future Python version they will be eventually a SyntaxError. codecs.escape_decode() and codecs.unicode_escape_decode() are left unchanged: they still emit DeprecationWarning. * The parser only emits SyntaxWarning for Python 3.12 (feature version), and still emits DeprecationWarning on older Python versions. * Fix SyntaxWarning by using raw strings in Tools/c-analyzer/ and wasm_build.py.
* gh-97616: test_list_resize_overflow() uses sys.maxsize (#99057)Victor Stinner2022-11-031-1/+1
|
* GH-96793: Implement PEP 479 in bytecode. (GH-99006)Mark Shannon2022-11-033-3/+5
| | | | | * Handle converting StopIteration to RuntimeError in bytecode. * Add custom instruction for converting StopIteration into RuntimeError.
* gh-98740: Fix validation of conditional expressions in RE (GH-98764)Serhiy Storchaka2022-11-031-0/+5
| | | | | | | | | | | In very rare circumstances the JUMP opcode could be confused with the argument of the opcode in the "then" part which doesn't end with the JUMP opcode. This led to incorrect detection of the final JUMP opcode and incorrect calculation of the size of the subexpression. NOTE: Changed return value of functions _validate_inner() and _validate_charset() in Modules/_sre/sre.c. Now they return 0 on success, -1 on failure, and 1 if the last op is JUMP (which usually is a failure). Previously they returned 1 on success and 0 on failure.
* gh-98999: Raise `ValueError` in `_pyio` on closed buffers (gh-99009)Nikita Sobolev2022-11-031-12/+26
|
* gh-98512: Add more tests for `ValuesView` (#98515)Nikita Sobolev2022-11-032-0/+6
|
* gh-98393: Update test_os for bytes-like types (#98487)Victor Stinner2022-11-021-34/+12
| | | Address Serhiy Storchaka's review.
* gh-98790: When DLLs directory is missing on Windows, assume executable_dir ↵Steve Dower2022-11-022-13/+30
| | | | contains PYD files instead (GH-98936)
* GH-98686: Quicken everything (GH-98687)Brandt Bucher2022-11-025-40/+46
|
* gh-98903: Test suite fails with exit code 4 if no tests ran (#98904)Victor Stinner2022-11-022-26/+50
| | | | | | | The Python test suite now fails wit exit code 4 if no tests ran. It should help detecting typos in test names and test methods. * Add "EXITCODE_" constants to Lib/test/libregrtest/main.py. * Fix a typo: "NO TEST RUN" becomes "NO TESTS RAN"
* gh-98925: Lower marshal recursion depth for WASI (GH-98938)Brett Cannon2022-11-011-0/+2
| | | | | For wasmtime 2.0, the stack depth cost is 6% higher. This causes the default max `marshal` recursion depth to blow the stack. As the default marshal depth is 2000 and Windows is set to 1000, split the difference and choose 1500 for WASI to be safe.
* gh-98931: Improve error message when the user types 'import x from y' ↵Pablo Galindo Salgado2022-11-011-0/+16
| | | | instead of 'from y import x' (#98932)
* gh-98852: Fix subscription of type aliases (GH-98920)Serhiy Storchaka2022-11-011-0/+28
| | | | | Fix subscription of type aliases containing bare generic types or types like TypeVar: for example tuple[A, T][int] and tuple[TypeVar, T][int], where A is a generic type, and T is a type variable.
* gh-98658: Add __class_getitem__ to array.array (#98661)Jelle Zijlstra2022-11-011-1/+3
| | | Closes #98658
* GH-98897: fix memory leak if `math.dist` raises exception (GH-98898)Kumar Aditya2022-11-011-0/+5
|
* gh-98692: Enable treating shebang lines as executables in py.exe launcher ↵Steve Dower2022-10-311-0/+47
| | | | (GH-98732)
* gh-98610: Adjust the Optional Restrictions on Subinterpreters (GH-98618)Eric Snow2022-10-314-8/+121
| | | | | | | Previously, the optional restrictions on subinterpreters were: disallow fork, subprocess, and threads. By default, we were disallowing all three for "isolated" interpreters. We always allowed all three for the main interpreter and those created through the legacy `Py_NewInterpreter()` API. Those settings were a bit conservative, so here we've adjusted the optional restrictions to: fork, exec, threads, and daemon threads. The default for "isolated" interpreters disables fork, exec, and daemon threads. Regular threads are allowed by default. We continue always allowing everything For the main interpreter and the legacy API. In the code, we add `_PyInterpreterConfig.allow_exec` and `_PyInterpreterConfig.allow_daemon_threads`. We also add `Py_RTFLAGS_DAEMON_THREADS` and `Py_RTFLAGS_EXEC`.
* gh-98878: Use builtins from the bound frame when offering a suggestion (#98880)Batuhan Taskaya2022-10-311-0/+9
|
* gh-98811: use full source location to simplify __future__ imports error ↵Irit Katriel2022-10-311-1/+1
| | | | checking. This also fixes an incorrect error offset. (GH-98812)
* gh-96151: Use a private name for passing builtins to dataclass. This now ↵Shantanu2022-10-311-0/+8
| | | | allows for a field named BUILTIN (gh-98143)
* gh-96853: Restore test coverage for Py_Initialize(Ex) (GH-98212)Nick Coghlan2022-10-301-0/+6
| | | | | | | | | | | * As most of `test_embed` now uses `Py_InitializeFromConfig`, add a specific test case to cover `Py_Initialize` (and `Py_InitializeEx`) * Rename `_testembed` init helper to clarify the API used * Add a `PyConfig_Clear` call in `Py_InitializeEx` to make the code more obviously correct (it already didn't leak as none of the dynamically allocated config fields were being populated, but it's clearer if the wrappers follow the documented API usage guidelines)
* gh-98783: Fix crashes when `str` subclasses are used in `_PyUnicode_Equal` ↵Nikita Sobolev2022-10-302-0/+31
| | | | (#98806)
* gh-98793: Fix typecheck in `overlapped.c` (#98835)Charlie Zhao2022-10-301-0/+11
| | | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* GH-90352: fix _SelectorDatagramTransport to inherit from DatagramTransport ↵Kumar Aditya2022-10-291-0/+4
| | | | (#98844)
* gh-98744: Prevent column-level decoding crashes on traceback module (#98824)Batuhan Taskaya2022-10-291-0/+50
|
* gh-84538: add strict argument to pathlib.PurePath.relative_to (GH-19813)domragusa2022-10-281-0/+82
| | | | | | | | | | | | | | | | | | | | | | | By default, :meth:`pathlib.PurePath.relative_to` doesn't deal with paths that are not a direct prefix of the other, raising an exception in that instance. This change adds a *walk_up* parameter that can be set to allow for using ``..`` to calculate the relative path. example: ``` >>> p = PurePosixPath('/etc/passwd') >>> p.relative_to('/etc') PurePosixPath('passwd') >>> p.relative_to('/usr') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pathlib.py", line 940, in relative_to raise ValueError(error_message.format(str(self), str(formatted))) ValueError: '/etc/passwd' does not start with '/usr' >>> p.relative_to('/usr', strict=False) PurePosixPath('../etc/passwd') ``` https://bugs.python.org/issue40358 Automerge-Triggered-By: GH:brettcannon
* GH-96793: Change `FOR_ITER` to not pop the iterator on exhaustion. (GH-96801)Mark Shannon2022-10-272-93/+97
| | | | Change FOR_ITER to have the same stack effect regardless of whether it branches or not. Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code).
* gh-98586: Add vector call APIs to the Limited API (GH-98587)Wenzel Jakob2022-10-272-1/+35
| | | Expose the facilities for making vector calls through Python's limited API.
* gh-98703: Add tests for closing `_ProactorSocketTransport` with proactor ↵Kumar Aditya2022-10-271-0/+21
| | | | event loop (GH-98730)
* gh-94808: cover `PyFunction_GetDefaults` and `PyFunction_SetDefaults` (#98449)Nikita Sobolev2022-10-271-0/+42
|
* gh-98741: Remove useless check_home usage from is_python_build usage (GH-98743)Henry Schreiner2022-10-261-1/+1
|
* gh-98727: Remove old style classes from `test_cmath` (GH-98728)Nikita Sobolev2022-10-261-33/+5
|
* gh-98608: Change _Py_NewInterpreter() to _Py_NewInterpreterFromConfig() ↵Eric Snow2022-10-264-6/+74
| | | | | | | | | | | | | | | | | | | | | | | | | (gh-98609) (see https://github.com/python/cpython/issues/98608) This change does the following: 1. change the argument to a new `_PyInterpreterConfig` struct 2. rename the function to `_Py_NewInterpreterFromConfig()`, inspired by `Py_InitializeFromConfig()` (takes a `_PyInterpreterConfig` instead of `isolated_subinterpreter`) 3. split up the boolean `isolated_subinterpreter` into the corresponding multiple granular settings * allow_fork * allow_subprocess * allow_threads 4. add `PyInterpreterState.feature_flags` to store those settings 5. add a function for checking if a feature is enabled on an opaque `PyInterpreterState *` 6. drop `PyConfig._isolated_interpreter` The existing default (see `Py_NewInterpeter()` and `Py_Initialize*()`) allows fork, subprocess, and threads and the optional "isolated" interpreter (see the `_xxsubinterpreters` module) disables all three. None of that changes here; the defaults are preserved. Note that the given `_PyInterpreterConfig` will not be used outside `_Py_NewInterpreterFromConfig()`, nor preserved. This contrasts with how `PyConfig` is currently preserved, used, and even modified outside `Py_InitializeFromConfig()`. I'd rather just avoid that mess from the start for `_PyInterpreterConfig`. We can preserve it later if we find an actual need. This change allows us to follow up with a number of improvements (e.g. stop disallowing subprocess and support disallowing exec instead). (Note that this PR adds "private" symbols. We'll probably make them public, and add docs, in a separate change.)
* gh-98713: Use `@cpython_only` for a test that fails on PyPy (#98714)Nikita Sobolev2022-10-261-1/+2
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-90716: add _pylong.py module (#96673)Neil Schemenauer2022-10-261-0/+47
| | | | | | | | | | | | Add Python implementations of certain longobject.c functions. These use asymptotically faster algorithms that can be used for operations on integers with many digits. In those cases, the performance overhead of the Python implementation is not significant since the asymptotic behavior is what dominates runtime. Functions provided by this module should be considered private and not part of any public API. Co-author: Tim Peters <tim.peters@gmail.com> Co-author: Mark Dickinson <dickinsm@gmail.com> Co-author: Bjorn Martinsson
* gh-94808: cover `PyMapping_HasKeyString` and `PyMapping_HasKey` (#98486)Nikita Sobolev2022-10-261-0/+12
|
* gh-94808: Improve coverage of `unicode_find` and `unicode_rfind` (#98648)Nikita Sobolev2022-10-251-0/+27
|
* gh-91058: Add error suggestions to 'import from' import errors (#98305)Pablo Galindo Salgado2022-10-252-2/+124
|
* GH-87390: Add remaining tests for PEP 646 (#98267)Matthew Rahtz2022-10-252-242/+472
| | | Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
* Use more precise exception types in `assertRaises` in typing tests (#98650)Nikita Sobolev2022-10-251-3/+3
|
* gh-93696: Locate frozen module source with __file__ (#93697)James Gerity2022-10-251-0/+46
| | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-98461: Fix location of RETURN_VALUE in async generator bytecode. ↵Irit Katriel2022-10-251-1/+1
| | | | compiler_jump_if no longer needs a pointer to the loc. (GH-98494)
* GH-89237: fix hang in proactor `subprocess.wait_closed()` (#98572)Kumar Aditya2022-10-241-1/+6
|
* GH-98407: fix `test_kill_issue43884` to not leak child processes (#98491)Kumar Aditya2022-10-241-1/+4
|
* gh-51511: Note that codecs.open()'s encoding parameter affects automatic ↵Stanley2022-10-211-1/+2
| | | | conversion to binary mode (#94370)
* GH-98363: Fix exception handling in batched() (GH-98523)Raymond Hettinger2022-10-211-0/+15
|
* gh-95027: Fix regrtest stdout encoding on Windows (#98492)Victor Stinner2022-10-211-3/+11
| | | | | | On Windows, when the Python test suite is run with the -jN option, the ANSI code page is now used as the encoding for the stdout temporary file, rather than using UTF-8 which can lead to decoding errors.
* gh-91051: allow setting a callback hook on PyType_Modified (GH-97875)Carl Meyer2022-10-212-2/+169
|
* gh-97912: Avoid quadratic behavior when adding LOAD_FAST_CHECK (GH-97952)Dennis Sweeney2022-10-201-0/+39
| | | | | * The compiler analyzes the usage of the first 64 local variables all at once using bit masks. * Local variables beyond the first 64 are only partially analyzed, achieving linear time.
* gh-96035: Make urllib.parse.urlparse reject non-numeric ports (#98273)Ben Kallus2022-10-201-3/+7
| | | Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>