|
7 | 7 | import numpy as np |
8 | 8 | from numpy import typing as npt # noqa: F401 |
9 | 9 | import pandas as pd |
| 10 | +import pytest |
10 | 11 | from typing_extensions import ( |
11 | | - Never, |
| 12 | + assert_never, |
12 | 13 | assert_type, |
| 14 | + Never |
13 | 15 | ) |
14 | 16 |
|
15 | 17 | from tests import ( |
@@ -179,8 +181,6 @@ def test_sub_ts_numpy_datetime() -> None: |
179 | 181 | a = np.array([s + np.timedelta64(m, "m") for m in range(3)], np.datetime64) |
180 | 182 |
|
181 | 183 | if TYPE_CHECKING_INVALID_USAGE: |
182 | | - # `numpy` typing gives the corresponding `ndarray`s in the static type |
183 | | - # checking, where our `__rsub__` cannot override. |
184 | 184 | _0 = left_ts - s # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
185 | 185 | # _1 = left_ts - a |
186 | 186 | _2 = left_td - s # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
@@ -210,45 +210,39 @@ def test_sub_ts_pd_datetime() -> None: |
210 | 210 | if TYPE_CHECKING_INVALID_USAGE: |
211 | 211 | _0 = left_ts - s # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
212 | 212 | assert_type(left_ts - a, Never) |
| 213 | + |
213 | 214 | _2 = left_td - s # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
214 | 215 | assert_type(left_td - a, Never) |
215 | 216 |
|
216 | 217 | _4 = s - left_ts # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
217 | 218 | assert_type(a - left_ts, Never) |
| 219 | + |
218 | 220 | _6 = s - left_td # type: ignore[operator] # pyright: ignore[reportOperatorIssue] |
219 | 221 | assert_type(a - left_td, Never) |
220 | 222 |
|
221 | 223 | left_ts.sub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
222 | | - assert_type(left_ts.sub(a), Never) |
| 224 | + with pytest.raises(AssertionError): |
| 225 | + assert_never(left_ts.sub(a)) |
223 | 226 |
|
| 227 | + left_td.sub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
| 228 | + with pytest.raises(AssertionError): |
| 229 | + assert_never(left_td.sub(a)) |
224 | 230 |
|
225 | | -def test_sub_ts_pd_datetime_1() -> None: |
226 | | - """Test pd.Series[Any] (Timestamp | Timedelta) - Pandas datetime(s)""" |
227 | | - s = pd.Timestamp(anchor) |
228 | | - a = pd.Series([s + pd.Timedelta(minutes=m) for m in range(3)]) |
229 | | - |
230 | | - if TYPE_CHECKING_INVALID_USAGE: |
231 | | - # When I merge this one to the previous one, mypy does not allow me to pass |
232 | 231 | left_ts.rsub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
233 | | - assert_type(left_ts.rsub(a), Never) |
| 232 | + with pytest.raises(AssertionError): |
| 233 | + assert_never(left_ts.rsub(a)) |
234 | 234 |
|
235 | | - |
236 | | -def test_sub_ts_pd_datetime_2() -> None: |
237 | | - """Test pd.Series[Any] (Timestamp | Timedelta) - Pandas datetime(s)""" |
238 | | - s = pd.Timestamp(anchor) |
239 | | - a = pd.Series([s + pd.Timedelta(minutes=m) for m in range(3)]) |
240 | | - |
241 | | - if TYPE_CHECKING_INVALID_USAGE: |
242 | | - # When I merge this one to the previous one, mypy does not allow me to pass |
243 | 235 | left_td.rsub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
244 | | - assert_type(left_td.rsub(a), Never) |
| 236 | + with pytest.raises(AssertionError): |
| 237 | + assert_never(left_td.rsub(a)) |
| 238 | + |
245 | 239 |
|
| 240 | +def test_sub_str_py_str() -> None: |
| 241 | + """Test pd.Series[Any] (int) - Python str""" |
| 242 | + s = "abc" |
246 | 243 |
|
247 | | -def test_str_sub() -> None: |
248 | 244 | if TYPE_CHECKING_INVALID_USAGE: |
249 | | - left_i - "abc" # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
250 | | - "abc" - left_i # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
251 | | - left_i * "abc" # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
252 | | - "abc" * left_i # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
253 | | - left_i / "abc" # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
254 | | - "abc" / left_i # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
| 245 | + _0 = left_i - s # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
| 246 | + _1 = s - left_i # type: ignore[operator] # pyright:ignore[reportOperatorIssue] |
| 247 | + left_i.sub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
| 248 | + left_i.rsub(s) # type: ignore[arg-type] # pyright: ignore[reportArgumentType,reportCallIssue] |
0 commit comments