nightshift/tests/test_status.py

34 lines
1.2 KiB
Python

from pathlib import Path
import tempfile
import unittest
from nightshift.artifacts import ArtifactStore
from nightshift.config import load_config
from nightshift.init import init_project
from nightshift.status import build_status, format_status
from nightshift.tasks import parse_task_file
class StatusTests(unittest.TestCase):
def test_status_reports_counts_and_latest_run(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
init_project(root)
ArtifactStore(root, ".nightshift", run_id="run-a").initialize_run()
config = load_config(root / "nightshift.yaml")
tasks = parse_task_file(config.project.root, config.project.task_file)
status = build_status(config, tasks)
output = format_status(status)
self.assertEqual(status.task_count, 1)
self.assertEqual(status.incomplete_count, 1)
self.assertEqual(status.next_task_id, "TASK-001")
self.assertIsNotNone(status.latest_run_dir)
self.assertIn("Project root:", output)
self.assertIn("Latest run:", output)
if __name__ == "__main__":
unittest.main()