# coding=utf-8 import os from pathlib import Path from spark_executor.tools import generate def test_generate_writes_code_and_returns_path(monkeypatch, tmp_path: Path): monkeypatch.chdir(tmp_path) out = generate.generate_job_file( "from pyspark.sql import SparkSession\n" "spark = SparkSession.builder.getOrCreate()\n" ) assert "script_path" in out p = out["script_path"] assert os.path.isabs(p) assert p.startswith(str(tmp_path / "data" / "jobs")) assert p.endswith(".py") with open(p) as f: assert "SparkSession.builder.getOrCreate()" in f.read() def test_generate_uses_env_var_when_set(monkeypatch, tmp_path: Path): monkeypatch.setenv("SPARK_EXECUTOR_JOBS_DIR", str(tmp_path / "custom")) out = generate.generate_job_file("x = 1\n") assert out["script_path"].startswith(str(tmp_path / "custom")) assert os.path.isfile(out["script_path"])