test(ohlcv): stamp cache mtimes in local time (#1372)

- the cache reads mtimes back in local time; the tests wrote them as UTC
This commit is contained in:
Yijia-Xiao
2026-09-23 19:28:56 +00:00
parent 96daaf1152
commit 2340fe4396
2 changed files with 18 additions and 5 deletions
+9 -3
View File
@@ -18,11 +18,17 @@ NOW = pd.Timestamp("2026-07-18 12:00")
STALE = su.OHLCV_CACHE_TTL_SECONDS + 60
def _stamp(path, ts):
"""Set ``path``'s mtime to the wall-clock ``ts``, read back in local time as
the cache does. A naive ``pd.Timestamp.timestamp()`` would be taken as UTC."""
t = ts.to_pydatetime().timestamp()
os.utime(path, (t, t))
def _write(tmp_path, name="AAPL-YFin-data.csv", age_seconds=0.0, last_date="2026-07-17"):
f = tmp_path / name
pd.DataFrame({"Date": [last_date], "Close": [100.0]}).to_csv(f, index=False)
written = NOW.timestamp() - age_seconds
os.utime(f, (written, written))
_stamp(f, NOW - pd.Timedelta(seconds=age_seconds))
return f
@@ -99,7 +105,7 @@ def test_one_cache_file_per_symbol_across_days(tmp_path, monkeypatch):
monkeypatch.setattr(su.pd.Timestamp, "today", staticmethod(lambda now=now: now))
su.load_ohlcv("AAPL", "2026-07-17")
written = list(tmp_path.glob("AAPL-*.csv"))
os.utime(written[0], (now.timestamp(), now.timestamp()))
_stamp(written[0], now)
assert len(downloads) == 3, "each new day refetches"
assert [p.name for p in tmp_path.iterdir()] == ["AAPL-YFin-data.csv"]