from __future__ import annotations
from sparkless.testing import get_imports
_imports = get_imports()
F = _imports.F
from tests.utils import _row_to_dict
def test_row_uses_alias_as_key_issue_repro(spark) -> None:
df = spark.createDataFrame([{"x": 1}], ["x"])
rows = df.select(F.lit(42).alias("map_col")).collect()
row_dict = _row_to_dict(rows[0])
assert list(row_dict.keys()) == ["map_col"]
assert row_dict["map_col"] == 42
def test_row_keys_match_select_aliases(spark) -> None:
df = spark.createDataFrame([(1, "a")], ["id", "name"])
rows = df.select(
F.col("id").alias("k"),
F.col("name").alias("v"),
).collect()
row_dict = _row_to_dict(rows[0])
assert list(row_dict.keys()) == ["k", "v"]
assert row_dict["k"] == 1
assert row_dict["v"] == "a"