Spaces:
Running
Running
| from datetime import date | |
| from cert_study_app.services import learning_progress_service as progress_service | |
| def test_learning_progress_migrates_legacy_daily_key(tmp_path, monkeypatch): | |
| progress_path = tmp_path / "learning_progress.json" | |
| progress_path.write_text( | |
| '{"daily": {"2026-06-21": {"tracks": {"linux": {"steps": ["lesson"], "counts": {"lesson": 1}}}}}}', | |
| encoding="utf-8", | |
| ) | |
| monkeypatch.setattr(progress_service, "PROGRESS_PATH", progress_path) | |
| assert progress_service.completed_steps("linux", date(2026, 6, 21)) == {"lesson"} | |
| assert progress_service.study_units("linux", date(2026, 6, 21)) == 0.3 | |
| def test_learning_progress_writes_activity_key(tmp_path, monkeypatch): | |
| progress_path = tmp_path / "learning_progress.json" | |
| monkeypatch.setattr(progress_service, "PROGRESS_PATH", progress_path) | |
| progress_service.record_activity("linux", "practice", amount=1, target_date=date(2026, 6, 21)) | |
| payload = progress_path.read_text(encoding="utf-8") | |
| assert '"activity"' in payload | |
| assert '"daily"' not in payload | |