Files

103 lines
4.4 KiB
Python

import tempfile
import textwrap
import unittest
from pathlib import Path
from scripts.write_frame_focus_report import build
def write(path: Path, content: str):
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(textwrap.dedent(content).lstrip(), encoding="utf-8")
class FrameFocusReportTests(unittest.TestCase):
def make_run_dir(self):
tmp = tempfile.TemporaryDirectory()
self.addCleanup(tmp.cleanup)
run_dir = Path(tmp.name) / "2026-06-24"
(run_dir / "reports").mkdir(parents=True)
return run_dir
def write_baseline_reports(self, run_dir: Path):
reports = run_dir / "reports"
write(
reports / "valve-reservation-packages.tsv",
"""
type\tproduct\tid\tstatus\tname\trelease_or_price\tdetails
app\tSteam Frame\t4165890\tpublic\tSteam Frame\tComing soon\tpackages=; package_groups=0; coming_soon=True; price=
package\tSteam Frame\t1629484\tprivate\t\t\tpackagedetails success:false
package\tSteam Frame\t1629486\tprivate\t\t\tpackagedetails success:false
app\tSteam Machine\t4165910\tpublic\tSteam Machine\t$1,049.00\tpackages=1629447,1629458,1629446,1629460; package_groups=1; coming_soon=False; price=$1,049.00
""",
)
write(
reports / "steamkit-pics-packages.tsv",
"""
type\tproduct\tid\tstatus\tchangenumber\tprevious_changenumber\tchanged_since_previous\tsha_hash\tonly_public\tname\trelated_ids\tdetails
app\tSteam Frame\t4165890\tprivate_metadata_token_required\t35675573\t35675573\tno\tabc\tTrue\tSteam Frame\t\tdepots_count=0
package\tSteam Frame\t1629484\tprivate_metadata_token_required\t35672606\t35672606\tno\t\tFalse\t\t\tapps_count=0
package\tSteam Frame\t1629486\tprivate_metadata_token_required\t35672606\t35672606\tno\t\tFalse\t\t\tapps_count=0
package\tSteam Machine\t1629446\tavailable\t36785426\t36756963\tyes\tdef\tFalse\t\t\tapps_count=1
""",
)
write(
reports / "steamdb-reservation-packages.tsv",
"""
product\tpackage_id\tlast_record_update\tlast_changenumber\tpossible_apps\tstatus
Steam Frame\t1629484\t5 May 2026 - 18:50:54 UTC\t35672606\t4165890:Steam Frame\tprivate_exists_only
Steam Frame\t1629486\t5 May 2026 - 18:50:54 UTC\t35672606\t4165890:Steam Frame\tprivate_exists_only
""",
)
write(
reports / "komodo-product-modified.tsv",
"""
machine\t2026-06-24T16:12:21
frame\t2026-05-27T16:53:46
""",
)
write(
reports / "customs-shipments.md",
"""
| arrival_date | shipper | consignee | description |
| 2026-06-17 | TECH-FRONT | VALVE | VIRTUAL REALITY DEVICES |
""",
)
def test_baseline_private_frame_reports_no_public_readiness(self):
run_dir = self.make_run_dir()
self.write_baseline_reports(run_dir)
report = build(run_dir)
self.assertIn("No public Steam Frame readiness change detected.", report)
self.assertIn("Frame app: `4165890`", report)
self.assertIn("Frame packages: `1629484`, `1629486`", report)
self.assertIn("status=private", report)
self.assertIn("product=frame; modified=2026-05-27T16:53:46", report)
self.assertIn("Steam Machine is now a launched comparator", report)
self.assertIn("VIRTUAL REALITY DEVICES", report)
def test_public_frame_package_reports_public_readiness(self):
run_dir = self.make_run_dir()
self.write_baseline_reports(run_dir)
write(
run_dir / "reports" / "valve-reservation-packages.tsv",
"""
type\tproduct\tid\tstatus\tname\trelease_or_price\tdetails
app\tSteam Frame\t4165890\tpublic\tSteam Frame\t$499.00\tpackages=1629484; package_groups=1; coming_soon=False; price=$499.00
package\tSteam Frame\t1629484\tpublic\tSteam Frame 256GB\t\tapps=4165890:Steam Frame
package\tSteam Frame\t1629486\tprivate\t\t\tpackagedetails success:false
""",
)
report = build(run_dir)
self.assertIn("Steam Frame public readiness detected.", report)
self.assertIn("package_groups=1", report)
self.assertIn("status=public", report)
if __name__ == "__main__":
unittest.main()