Files
gyxx-flow/tests/test_supply_replenishment_batch.py
T

34 lines
1.1 KiB
Python

from __future__ import annotations
import os
from pathlib import Path
import pytest
from gyxx_flow.modules.supply_chain.orchestrator.scripts import batch_process
def test_batch_only_selects_an_xlsx_from_the_current_collection(
tmp_path: Path,
monkeypatch: pytest.MonkeyPatch,
) -> None:
monkeypatch.setattr(batch_process, "DATA_DIR", tmp_path)
old = tmp_path / "补货建议_旧.xlsx"
current = tmp_path / "补货建议_本次.xlsx"
old.write_bytes(b"old")
current.write_bytes(b"current")
os.utime(old, (100.0, 100.0))
os.utime(current, (201.0, 201.0))
assert batch_process._pick_latest_xlsx(since_epoch=200.0) == current
assert batch_process._pick_latest_xlsx(since_epoch=202.0) is None
def test_no_replenishment_is_encoded_as_a_successful_business_result() -> None:
source = (
Path(batch_process.__file__).with_name("ProductReplenishment.py")
).read_text(encoding="utf-8-sig")
assert "completed_without_replenishment = True" in source
assert "return filepath or completed_without_replenishment" in source