Files
wehub-resource-sync 2860fb5d18
Security / Dependency review (push) Has been skipped
Scorecard / Scorecard analysis (push) Failing after 0s
Validate / eval (push) Failing after 0s
Security / Dependency audit (push) Failing after 1s
Security / Secret scan (push) Failing after 1s
Validate / tests (push) Failing after 0s
Validate / mcp-tests (push) Failing after 1s
GitHub Actions Security Analysis with zizmor 🌈 / zizmor (push) Failing after 1s
Security / SAST scan (push) Failing after 13m52s
chore: import upstream snapshot with attribution
2026-07-13 12:05:33 +08:00

115 lines
3.2 KiB
Python

# ruff: noqa: E402
"""Tests for --as-of date support."""
import json
import subprocess
import sys
import unittest
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(REPO_ROOT / "skills" / "last30days" / "scripts"))
import last30days as cli
from lib import dates
class AsOfDateTests(unittest.TestCase):
def test_get_date_range_with_as_of_date_and_7_days(self):
from_date, to_date = dates.get_date_range(7, "2020-05-25")
self.assertEqual("2020-05-18", from_date)
self.assertEqual("2020-05-25", to_date)
def test_get_date_range_with_as_of_date_and_30_days(self):
from_date, to_date = dates.get_date_range(30, "2020-05-25")
self.assertEqual("2020-04-25", from_date)
self.assertEqual("2020-05-25", to_date)
def test_get_date_range_rejects_invalid_as_of_date(self):
with self.assertRaisesRegex(ValueError, "YYYY-MM-DD"):
dates.get_date_range(7, "2020/05/25")
def test_build_parser_accepts_as_of_date(self):
parser = cli.build_parser()
args, extra = parser.parse_known_args(
["--as-of", "2020-05-25", "--days", "7", "OpenAI"]
)
self.assertEqual("2020-05-25", args.as_of_date)
self.assertEqual(7, args.lookback_days)
self.assertEqual(["OpenAI"], args.topic)
self.assertEqual([], extra)
def test_mock_json_cli_uses_as_of_date_range(self):
result = subprocess.run(
[
sys.executable,
"skills/last30days/scripts/last30days.py",
"OpenAI",
"--mock",
"--emit=json",
"--json-profile=raw",
"--as-of",
"2020-05-25",
"--days",
"7",
],
cwd=REPO_ROOT,
capture_output=True,
text=True,
encoding="utf-8",
errors="replace",
check=False,
)
self.assertEqual(0, result.returncode, result.stderr)
payload = json.loads(result.stdout)
self.assertEqual("2020-05-18", payload["range_from"])
self.assertEqual("2020-05-25", payload["range_to"])
def test_cli_rejects_invalid_as_of_date(self):
result = subprocess.run(
[
sys.executable,
"skills/last30days/scripts/last30days.py",
"OpenAI",
"--mock",
"--emit=json",
"--as-of",
"2020/05/25",
],
cwd=REPO_ROOT,
capture_output=True,
text=True,
encoding="utf-8",
errors="replace",
check=False,
)
self.assertNotEqual(0, result.returncode)
self.assertIn("YYYY-MM-DD", result.stderr)
def test_days_ago_uses_reference_date(self):
self.assertEqual(
5,
dates.days_ago("2020-05-20", reference_date="2020-05-25"),
)
def test_recency_score_uses_reference_date(self):
self.assertEqual(
50,
dates.recency_score(
"2020-05-20",
max_days=10,
reference_date="2020-05-25",
),
)
if __name__ == "__main__":
unittest.main()