Run CPython test suite in our CI (#353) · python/typing_extensions@d409ec9 (original) (raw)
4 files changed
lines changed
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -74,6 +74,14 @@ jobs: | ||
74 | 74 | cd src |
75 | 75 | python -m unittest test_typing_extensions.py |
76 | 76 | |
77 | + - name: Test CPython typing test suite | |
78 | +run: | | |
79 | + # Run the typing test suite from CPython with typing_extensions installed, | |
80 | + # because we monkeypatch typing under some circumstances. | |
81 | + python -c 'import typing_extensions; import test.__main__' test_typing -v | |
82 | + # Test suite fails on PyPy even without typing_extensions | |
83 | +if: !startsWith(matrix.python-version, 'pypy') | |
84 | + | |
77 | 85 | linting: |
78 | 86 | name: Lint |
79 | 87 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
1 | -# Release 4.11.0 (WIP) | |
1 | +# Unreleased | |
2 | 2 | |
3 | +- Fix minor discrepancy between error messages produced by `typing` | |
4 | + and `typing_extensions` on Python 3.10. Patch by Jelle Zijlstra. | |
3 | 5 | - When `include_extra=False`, `get_type_hints()` now strips `ReadOnly` from the annotation. |
4 | 6 | |
5 | 7 | # Release 4.10.0 (February 24, 2024) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -3262,7 +3262,7 @@ def __call__(self, *args: Unpack[Ts]) -> T: ... | ||
3262 | 3262 | self.assertEqual(MemoizedFunc.__parameters__, (Ts, T, T2)) |
3263 | 3263 | self.assertTrue(MemoizedFunc._is_protocol) |
3264 | 3264 | |
3265 | -things = "arguments" if sys.version_info >= (3, 11) else "parameters" | |
3265 | +things = "arguments" if sys.version_info >= (3, 10) else "parameters" | |
3266 | 3266 | |
3267 | 3267 | # A bug was fixed in 3.11.1 |
3268 | 3268 | # (https://github.com/python/cpython/commit/74920aa27d0c57443dd7f704d6272cca9c507ab3) |
@@ -5711,7 +5711,7 @@ class Y(Generic[T], NamedTuple): | ||
5711 | 5711 | self.assertIsInstance(a, G) |
5712 | 5712 | self.assertEqual(a.x, 3) |
5713 | 5713 | |
5714 | -things = "arguments" if sys.version_info >= (3, 11) else "parameters" | |
5714 | +things = "arguments" if sys.version_info >= (3, 10) else "parameters" | |
5715 | 5715 | |
5716 | 5716 | with self.assertRaisesRegex(TypeError, f'Too many {things}'): |
5717 | 5717 | G[int, str] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -164,7 +164,8 @@ def _check_generic(cls, parameters, elen=_marker): | ||
164 | 164 | num_tv_tuples = sum(isinstance(p, TypeVarTuple) for p in parameters) |
165 | 165 | if (num_tv_tuples > 0) and (alen >= elen - num_tv_tuples): |
166 | 166 | return |
167 | -raise TypeError(f"Too {'many' if alen > elen else 'few'} parameters for {cls};" | |
167 | +things = "arguments" if sys.version_info >= (3, 10) else "parameters" | |
168 | +raise TypeError(f"Too {'many' if alen > elen else 'few'} {things} for {cls};" | |
168 | 169 | f" actual {alen}, expected {elen}") |
169 | 170 | |
170 | 171 |