|
1 | 1 | from __future__ import annotations
|
2 | 2 |
|
| 3 | +from datetime import datetime |
3 | 4 | from typing import TYPE_CHECKING
|
4 | 5 |
|
5 | 6 | import pyarrow as pa
|
6 | 7 | import pytest
|
7 | 8 |
|
8 | 9 | import narwhals.stable.v1 as nw
|
9 | 10 | from narwhals._arrow.utils import parse_datetime_format
|
| 11 | +from tests.utils import assert_equal_data |
10 | 12 |
|
11 | 13 | if TYPE_CHECKING:
|
12 | 14 | from tests.utils import Constructor
|
@@ -74,28 +76,23 @@ def test_to_datetime_series_infer_fmt(constructor_eager: ConstructorEager) -> No
|
74 | 76 |
|
75 | 77 |
|
76 | 78 | def test_to_datetime_infer_fmt_from_date(constructor: Constructor) -> None:
|
77 |
| - data = {"z": ["2020-01-01", "2020-01-02"]} |
78 |
| - if "cudf" in str(constructor): # pragma: no cover |
79 |
| - expected = "2020-01-01T00:00:00.000000000" |
80 |
| - else: |
81 |
| - expected = "2020-01-01 00:00:00" |
| 79 | + data = {"z": ["2020-01-01", "2020-01-02", None]} |
| 80 | + expected = [datetime(2020, 1, 1), datetime(2020, 1, 2), None] |
82 | 81 | result = (
|
83 | 82 | nw.from_native(constructor(data))
|
84 | 83 | .lazy()
|
85 |
| - .select(y=nw.col("z").str.to_datetime()) |
| 84 | + .select(nw.col("z").str.to_datetime()) |
86 | 85 | .collect()
|
87 |
| - .item(row=0, column="y") |
88 | 86 | )
|
89 |
| - assert str(result) == expected |
| 87 | + assert_equal_data(result, {"z": expected}) |
90 | 88 |
|
91 | 89 |
|
92 |
| -@pytest.mark.parametrize("data", [["2024-01-01", "abc"], ["2024-01-01", None]]) |
93 |
| -def test_pyarrow_infer_datetime_raise_invalid(data: list[str | None]) -> None: |
| 90 | +def test_pyarrow_infer_datetime_raise_invalid() -> None: |
94 | 91 | with pytest.raises(
|
95 | 92 | NotImplementedError,
|
96 | 93 | match="Unable to infer datetime format, provided format is not supported.",
|
97 | 94 | ):
|
98 |
| - parse_datetime_format(pa.chunked_array([data])) |
| 95 | + parse_datetime_format(pa.chunked_array([["2024-01-01", "abc"]])) |
99 | 96 |
|
100 | 97 |
|
101 | 98 | @pytest.mark.parametrize(
|
|
0 commit comments