from __future__ import annotations
from tests.fixtures.spark_imports import get_spark_imports
_imports = get_spark_imports()
F = _imports.F
from datetime import date
def test_filter_date_column_equals_string_literal(spark) -> None:
df = spark.createDataFrame(
[{"dt": date(2025, 1, 1)}, {"dt": date(2025, 1, 2)}],
"dt date",
)
out = df.filter(F.col("dt") == "2025-01-01").collect()
assert len(out) == 1
assert out[0]["dt"] == date(2025, 1, 1) or str(out[0]["dt"]).startswith(
"2025-01-01"
)
def test_filter_date_column_not_equals_string_literal(spark) -> None:
df = spark.createDataFrame(
[{"dt": date(2025, 1, 1)}, {"dt": date(2025, 1, 2)}],
"dt date",
)
out = df.filter(F.col("dt") != "2025-01-01").collect()
assert len(out) == 1
assert out[0]["dt"] == date(2025, 1, 2) or str(out[0]["dt"]).startswith(
"2025-01-02"
)