AI Implementation feature(1089): Scheduled Execution with Cron and Retry Handling (#9)

This commit was merged in pull request #9.
This commit is contained in:
2026-08-04 20:48:16 +00:00
parent 3545b81546
commit 5f6ddf76a4
27 changed files with 644 additions and 272 deletions
+4 -5
View File
@@ -103,10 +103,10 @@ def test_entrypoint_renders_run_at_into_cron() -> None:
env = _entrypoint_env({
"MASTODON_BASE_URL": "https://mastodon.example",
"MASTODON_ACCESS_TOKEN": "x",
"VISIBILITY": "public",
"MASTODON_VISIBILITY": "public",
"SITE_URL": "https://blog.example.com",
"HASHTAGS": "#throwback",
"THROWNBACK_PREFIX": "Throwback:",
"THROWBACK_PREFIX": "Throwback:",
"MAX_RETRIES": "3",
"RUN_AT": "09:00",
"TZ": "Europe/Berlin",
@@ -115,8 +115,7 @@ def test_entrypoint_renders_run_at_into_cron() -> None:
returncode, stderr, rendered = _extract_rendered_cron(env, tmp_cron_dest)
assert returncode == 0, (returncode, stderr)
assert "00 09 * * *" in rendered, rendered
assert "python -m tenbackward" in rendered
assert "00 09 * * * /usr/local/bin/run-bot.sh >> /proc/1/fd/1 2>&1" in rendered, rendered
assert "TZ=Europe/Berlin" in rendered
finally:
tmp_cron_dest.unlink(missing_ok=True)
@@ -188,7 +187,7 @@ def test_install_cron_rejects_unresolved_placeholder(tmp_path: Path) -> None:
assert "__RUN_AT__" in proc.stderr
good = tmp_path / "good.cron"
good.write_text("SHELL=/bin/bash\n5 9 * * * /bin/true\n")
good.write_text("SHELL=/bin/bash\n5 9 * * * /usr/local/bin/run-bot.sh >> /proc/1/fd/1 2>&1\n")
proc2 = subprocess.run(
["/bin/bash", str(script), str(good)],
capture_output=True, text=True, timeout=10,