screen-locker/screen_locker/tests
Krzysztof kuhy Rudnicki 8450644a56 Lock screen: "choose lockers…" opens sickdays' KeepPanel in the lock
Next to the one-tap "I'm sick" (unchanged: keeps nothing, unlocks), a small
secondary link lays sickdays 0.3.0's embeddable KeepPanel over every
surface, in-process so it gets input under the lock's grab. Closing the
overlay reveals the untouched screen underneath, so no countdown or phone
check is restarted or skipped.

After the panel's own write + sync: sick with the workout lock standing
down -> sick floor, decision, close (shared with the one-tap path, no second
mark or push); sick with the workout kept -> sick floor and a note, lock
stays; cleared / unchanged / cancel -> the panel just closes.

Tests stub KeepPanel and redirect resolve_paths and sync_quietly in every
sickdays.* module, sickdays.gui._panel included. The fit check measures the
panel on a throwaway pool. Pins bumped to sickdays-v0.3.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAhbNszs5JKdtnD4uBi3xp
2026-10-17 14:06:22 +02:00
..
fixtures manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
shell shutdown: minutes end to end (*_MINUTES schedule keys, HH:MM helper args, to_hours removed) 2026-10-04 19:48:24 +02:00
__init__.py Add comprehensive tests for stockfish_analysis (100% coverage) 2025-12-02 22:58:06 +01:00
_credential_fixtures.py Detect a Firebase credential the server rejects, not just one that fails to build 2026-08-27 21:32:39 +02:00
_earned_fixtures.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
_gatelock_fixtures.py Migrate screen_locker to gatelock v0.2.0 per-output locking 2026-07-25 16:26:39 +02:00
_isolated_state.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
_locker_factories.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
_opt_in_fixtures.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
_real_state_fixtures.py Lock screen: "choose lockers…" opens sickdays' KeepPanel in the lock 2026-10-17 14:06:22 +02:00
_sick_helpers.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
_status_view_helpers.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
_tk_mocks.py Lock screen: "choose lockers…" opens sickdays' KeepPanel in the lock 2026-10-17 14:06:22 +02:00
_unlock_helpers.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
_workout_sync_fixtures.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
conftest.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_adb_and_phone_part2.py Split 13 test modules under the cap; document their test methods 2026-08-15 19:16:18 +02:00
test_adb_and_phone.py Split _shutdown, _phone_verification and _status_data 2026-08-15 20:11:28 +02:00
test_annotate_duplicate_credits.py Record which log entries are two recordings of one workout 2026-08-29 22:31:32 +02:00
test_armed_state.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_cli_help.py Credit: one reward per workout slot, desktop notification, --help, runnerup-watch ignores re-pulls 2026-10-09 19:05:08 +02:00
test_cli.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_compliance_state_part2.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_compliance_state_part3.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_compliance_state_part4.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_compliance_state.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_credential_recovery_part2.py Detect a Firebase credential the server rejects, not just one that fails to build 2026-08-27 21:32:39 +02:00
test_credential_recovery.py Detect a Firebase credential the server rejects, not just one that fails to build 2026-08-27 21:32:39 +02:00
test_credit_notify.py Credit: one reward per workout slot, desktop notification, --help, runnerup-watch ignores re-pulls 2026-10-09 19:05:08 +02:00
test_credit_slot.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_daily_limits_wiring.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_decision_log_modes.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_decision_log.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_decision_reasons.py Say every reason a lock decision had, not just the first one 2026-08-23 07:02:41 +02:00
test_decision_trail.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_duration_threshold_fixture.py Add sync-status card and duration-threshold fixture 2026-08-15 18:41:31 +02:00
test_early_bird_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_early_bird_part3.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_early_bird.py The early-bird window is the wake-alarm carrot, not a clock 2026-09-20 08:39:44 +02:00
test_earned.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
test_earner_units.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_extra_benefits_part2.py drop the weekly shutdown bonus entirely; every bonus stops at the shutdown ceiling 2026-10-10 08:59:50 +02:00
test_extra_benefits.py drop the weekly shutdown bonus entirely; every bonus stops at the shutdown ceiling 2026-10-10 08:59:50 +02:00
test_first_credits.py earned_time 0.6.0: maturity-aware penalty start (first_credits); grace floor covers every gate earner 2026-10-09 21:55:21 +02:00
test_focus_and_scroll.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_gate_bonus_tutor.py earned_time 0.9.0: tutor earner renamed automation -> tutor 2026-10-12 16:38:25 +02:00
test_gate_bonus.py deps: earned_time 0.8.0 (tutor credit per active minute); tutor rung tests for minute rows and legacy blocks 2026-10-10 18:32:43 +02:00
test_grace_floor.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_heat_skip.py Add manual (unverified) workout logging with evidence form 2026-07-05 20:08:52 +02:00
test_home_isolation.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_init_and_log_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_init_and_log_part3.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_init_and_log.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_instance.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_local_day_key.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_lock_invariant.py Reading hour from book-guard: +1h shutdown; base 20->19 from 2026-10-01 2026-09-26 19:02:24 +02:00
test_log_io.py Support multiple workouts per day; fix the dead sync; ban silent failures 2026-07-17 09:22:31 +02:00
test_log_mixin_chokepoint.py Stop the relaxed-day popup from re-firing every 30 minutes after Skip 2026-08-18 21:55:59 +02:00
test_log_mixin_lock.py runnerup-watch: credit a RunnerUp run the moment its TCX upload finishes; lock the workout-log write 2026-10-07 20:36:38 +02:00
test_manual_budget_merge_fixture.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_cli_future.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_cli.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_future_wiring.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_future.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_pending.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_push_part2.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_manual_push.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_manual_rekey_dedup.py Count the manual budget per workout, keep a synced twin's id, and let a logged workout outrank an expired early bird 2026-09-18 09:44:28 +02:00
test_manual_schedule.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_sync_future.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_sync_part2.py Stop the relaxed-day popup from re-firing every 30 minutes after Skip 2026-08-18 21:55:59 +02:00
test_manual_sync_part3.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_sync.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_workout_date.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_workout_dialog.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_workout_features_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_manual_workout_features_part3.py Split the last 8 test modules; scope pylint's test-inherent checks 2026-08-15 19:40:32 +02:00
test_manual_workout_features_part4.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_manual_workout_features.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_workout_part2.py Split 12 more test modules under the 250-line cap 2026-08-15 19:34:59 +02:00
test_manual_workout_status_view.py manual workout: log for future dates (credited on the day) 2026-10-16 15:34:15 +02:00
test_manual_workout.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_mcp.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_morning_session.py Morning-session reader moves to gatelock 0.9.0 2026-10-02 14:05:40 +02:00
test_no_popup_widgets.py Make the lock overlay's sport selector usable, and focus its form fields 2026-07-26 15:08:08 +02:00
test_phone_check_unlock_part2.py Stop the relaxed-day popup from re-firing every 30 minutes after Skip 2026-08-18 21:55:59 +02:00
test_phone_check_unlock_part3.py Add auto-fill RunnerUp scan, carrot bonuses, and --status interface 2026-06-28 08:08:35 +02:00
test_phone_verification_part2.py Split _shutdown, _phone_verification and _status_data 2026-08-15 20:11:28 +02:00
test_phone_verification_part3.py Split 10 more test modules under the 250-line cap 2026-08-15 19:22:00 +02:00
test_phone_verification_part4.py Split _shutdown, _phone_verification and _status_data 2026-08-15 20:11:28 +02:00
test_phone_verification_part5.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_phone_verification_part6.py Split _shutdown, _phone_verification and _status_data 2026-08-15 20:11:28 +02:00
test_phone_verification_part7.py Split _shutdown, _phone_verification and _status_data 2026-08-15 20:11:28 +02:00
test_phone_verification_part8.py Split 10 more test modules under the 250-line cap 2026-08-15 19:22:00 +02:00
test_poke_contract.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_poke_credit_day.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_poke_credit.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_poke_main.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_poke_sandbox.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_poke_server.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_poke_wire.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_queue_state.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_rest_day.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_rtdb_stream.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_runnerup_backfill_credit.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_runnerup_verification_part1.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part2.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part3.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part4.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part5.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part6.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part7.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part8.py Credit RunnerUp runs by the day rule, from the WebDAV drop dir, and never twice 2026-09-16 21:14:17 +02:00
test_runnerup_verification_part9.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part10.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part11.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part12.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part13.py Credit RunnerUp runs by the day rule, from the WebDAV drop dir, and never twice 2026-09-16 21:14:17 +02:00
test_runnerup_verification_part14.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_verification_part15.py Finish the RunnerUp sport-allowlist removal; isolate the instance lock in tests 2026-08-21 13:17:26 +02:00
test_runnerup_walks.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_runnerup_watch_filter.py Credit: one reward per workout slot, desktop notification, --help, runnerup-watch ignores re-pulls 2026-10-09 19:05:08 +02:00
test_runnerup_webdav_source.py Credit RunnerUp runs by the day rule, from the WebDAV drop dir, and never twice 2026-09-16 21:14:17 +02:00
test_scheduled_skip.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_screen_lock_coverage_part1.py drop the weekly shutdown bonus entirely; every bonus stops at the shutdown ceiling 2026-10-10 08:59:50 +02:00
test_screen_lock_coverage_part2.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
test_screen_lock_coverage_part3.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_screen_lock_coverage_part4.py shutdown: minutes end to end (*_MINUTES schedule keys, HH:MM helper args, to_hours removed) 2026-10-04 19:48:24 +02:00
test_screen_lock_coverage_part5.py shutdown: minutes end to end (*_MINUTES schedule keys, HH:MM helper args, to_hours removed) 2026-10-04 19:48:24 +02:00
test_session_stream_connect.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_session_stream_loop.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_session_stream.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_session_sync.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_shutdown_base_replay.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
test_shutdown_base.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_ceiling_invariant.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_flat_earners.py deps: earned_time 0.6.1 (tutor cutover; new-gate rungs spare the floor) 2026-10-10 08:24:48 +02:00
test_shutdown_leetcode.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
test_shutdown_minutes.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_part3.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_part4.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_shutdown_part6.py Split 10 more test modules under the 250-line cap 2026-08-15 19:22:00 +02:00
test_shutdown_reading.py tests: earned_time 0.7.0 tutor policy (confirmed, 15 min per block); hook envs on 0.7.0 2026-10-10 15:15:35 +02:00
test_shutdown_target.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_sick_button.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_sick_floor.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_sick_panel.py Lock screen: "choose lockers…" opens sickdays' KeepPanel in the lock 2026-10-17 14:06:22 +02:00
test_source_health.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_status_data_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_status_data_part3.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_status_data_part4.py drop the banked extra-workout shutdown bonus (no new hours from 2026-W42; streak + early-bird kept) 2026-10-10 08:32:40 +02:00
test_status_data.py Shutdown +1h on a day with a LeetCode solve; base moves 21:00 -> 20:00 2026-09-15 20:06:26 +02:00
test_status_part2.py shutdown: minutes end to end (*_MINUTES schedule keys, HH:MM helper args, to_hours removed) 2026-10-04 19:48:24 +02:00
test_status_part3.py Grade against 3.14 too, not just run on it 2026-08-29 11:42:47 +02:00
test_status_view_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_status_view_part3.py Make Check Phone week-aware; add RunnerUp GPS tolerance; fix CLI weekly count 2026-07-18 06:55:55 +02:00
test_status_view_part4.py earned_time 0.6.0: per-day registry consumer, sleep-ladder date-proof tests, pin v0.6.0 2026-10-09 21:36:53 +02:00
test_status_view_part5.py Credit RunnerUp runs by the day rule, from the WebDAV drop dir, and never twice 2026-09-16 21:14:17 +02:00
test_status_view_part6.py Split 12 more test modules under the 250-line cap 2026-08-15 19:34:59 +02:00
test_status_view_part7.py Serve the lock decision, its history and its health at 127.0.0.1:8770 2026-08-29 22:50:19 +02:00
test_status_view.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_status.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_stream_auth.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_stream_cache_merge.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_stream_cache.py workout-poke: instant phone credit over LAN (signed POST :8773) and Firebase stream 2026-10-09 19:05:51 +02:00
test_surface_fanout.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_sync_degradation_part2.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_sync_degradation.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_sync_fixtures.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_sync_retry.py Retry sync past the boot/resume network race, and stop blaming the token 2026-07-20 08:46:37 +02:00
test_sync_status.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_sync_tombstones.py Tombstone sync records durably: a ledger the PC re-pushes every tick 2026-09-13 20:20:06 +02:00
test_systemd_units.py The early-bird window is the wake-alarm carrot, not a clock 2026-09-20 08:39:44 +02:00
test_temperature.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_time_check.py chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
test_tutor_cutover.py earned_time 0.9.0: tutor earner renamed automation -> tutor 2026-10-12 16:38:25 +02:00
test_ui_and_timers.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_ui_flows_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_vt_switching.py Migrate to the shared gatelock backend 2026-06-21 20:11:16 +02:00
test_wake_skip.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_walk_tcx.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_web_payload_part2.py Serve the lock decision, its history and its health at 127.0.0.1:8770 2026-08-29 22:50:19 +02:00
test_web_payload.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_web_server_part2.py Serve the lock decision, its history and its health at 127.0.0.1:8770 2026-08-29 22:50:19 +02:00
test_web_server.py Serve the lock decision, its history and its health at 127.0.0.1:8770 2026-08-29 22:50:19 +02:00
test_weekly_check_dedup_part2.py Count one StrongLifts session once, not once per ingestion path 2026-08-29 22:23:17 +02:00
test_weekly_check_dedup.py Count one StrongLifts session once, not once per ingestion path 2026-08-29 22:23:17 +02:00
test_weekly_check_part2.py Stop the relaxed-day popup from re-firing every 30 minutes after Skip 2026-08-18 21:55:59 +02:00
test_weekly_check.py Lose Tue/Wed/Thu leniency when wake-alarm signals a missed prior-day ring 2026-09-23 21:23:31 +02:00
test_weekly_logic_part2.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_weekly_logic_part3.py Close the four gaps that let a decided lock never reach the screen 2026-08-30 15:24:45 +02:00
test_weekly_logic_part4.py Stop the relaxed-day popup from re-firing every 30 minutes after Skip 2026-08-18 21:55:59 +02:00
test_weekly_logic_part5.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_weekly_logic.py sick days: one shared sickdays pool, 20:00 shutdown floor, one-tap lock button 2026-10-16 13:30:39 +02:00
test_workday_penalty.py Sick days: per-locker keep (sickdays 0.2.0) for the workout lock 2026-10-16 15:18:49 +02:00
test_workout_app.py Supervise the workout app as the lock surface, on a deadline that holds 2026-08-22 11:52:02 +02:00
test_workout_handoff.py Lend the lock screen's grab to the workout app, without unlocking it 2026-08-22 12:08:40 +02:00
test_workout_ledger_cli.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_workout_ledger.py Shutdown: walks as workout, rest days, grace floor, workout ledger (earned-time 0.4.0) 2026-10-09 10:43:45 +02:00
test_workout_ready.py Supervise the workout app as the lock surface, on a deadline that holds 2026-08-22 11:52:02 +02:00
test_workout_session.py Put the demo's escape hatch inside the app, the only place it can be received 2026-08-22 12:41:07 +02:00
test_workout_sync_part2.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_workout_sync_part4.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_workout_sync_part5.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_workout_sync_part6.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00
test_workout_sync.py Sync: Firebase only — drop the GitHub transport (kuhyx/syncs stays a frozen archive) 2026-10-09 19:18:56 +02:00