Skip to content

test: add edge case tests for clock_pack_loader (#12)#14

Merged
Orinks merged 1 commit intodevfrom
fix/issue-12-pack-loader-tests
Feb 4, 2026
Merged

test: add edge case tests for clock_pack_loader (#12)#14
Orinks merged 1 commit intodevfrom
fix/issue-12-pack-loader-tests

Conversation

@Orinks
Copy link
Owner

@Orinks Orinks commented Feb 4, 2026

Add 9 new tests covering uncovered lines in clock_pack_loader:

  • discover_packs with non-existent directory
  • discover_packs skipping non-directory items
  • discover_packs handling ClockPackError from invalid packs
  • discover_packs handling generic exceptions (PermissionError)
  • load_pack with invalid JSON manifest
  • load_pack with missing version field
  • validate_pack with unsupported audio format
  • get_pack returning None for missing pack
  • refresh clearing cache and re-discovering packs

Closes #12

Add 9 new tests covering uncovered lines in clock_pack_loader:
- discover_packs with non-existent directory
- discover_packs skipping non-directory items
- discover_packs handling ClockPackError from invalid packs
- discover_packs handling generic exceptions (PermissionError)
- load_pack with invalid JSON manifest
- load_pack with missing version field
- validate_pack with unsupported audio format
- get_pack returning None for missing pack
- refresh clearing cache and re-discovering packs

Closes #12
@Orinks Orinks merged commit 1e76649 into dev Feb 4, 2026
5 checks passed
@Orinks Orinks deleted the fix/issue-12-pack-loader-tests branch February 4, 2026 21:13
Orinks added a commit that referenced this pull request Feb 5, 2026
…quiet hours (#16)

* fix: remove obsolete accessibletalkingclock directory breaking pytest

Removes the old accessibletalkingclock/ directory that was left over from
the project rename. This duplicate tests/ folder caused pytest
ImportPathMismatchError during collection.

Also fixes an unused variable in scripts/generate_sounds.py.

Fixes #6

* test: improve audio module test coverage to 80%+ (#10)

Bring audio module coverage from 65% to 96%:
- player.py: 66% → 94%
- tts_engine.py: 63% → 97%

Added comprehensive tests for:
- BASS audio init/cleanup with sound_lib
- Fallback playback via playsound3
- Volume control during active playback
- Stream lifecycle (create, stop, free)
- pyttsx3 engine init, speech, and error handling
- Voice enumeration and selection
- Rate property with engine sync
- Time formatting edge cases (midnight, noon, quarter-to)
- Error handling and graceful degradation

All external audio dependencies (sound_lib, playsound3, pyttsx3) are mocked.

Closes #8

* fix: remove non-existent BASS_Free import from sound_lib (#11)

BASS_Free doesn't exist in sound_lib. The cleanup method now just
resets the initialization flag instead of calling a non-existent
function. Updated tests accordingly.

* test: add clock_pack_loader edge case tests (closes #12) (#13)

Cover all error paths and edge cases in clock_pack_loader:
- discover_packs with nonexistent directory
- discover_packs skipping non-directory items
- discover_packs handling ClockPackError and generic exceptions
- load_pack with invalid JSON manifest
- load_pack with missing required fields
- validate_pack with unsupported audio formats
- get_pack returning None for missing IDs
- refresh clearing cache and re-discovering

Coverage: 82% → 99%

* test: add edge case tests for clock_pack_loader (#12) (#14)

Add 9 new tests covering uncovered lines in clock_pack_loader:
- discover_packs with non-existent directory
- discover_packs skipping non-directory items
- discover_packs handling ClockPackError from invalid packs
- discover_packs handling generic exceptions (PermissionError)
- load_pack with invalid JSON manifest
- load_pack with missing version field
- validate_pack with unsupported audio format
- get_pack returning None for missing pack
- refresh clearing cache and re-discovering packs

Closes #12

* test(clock-service): add edge case tests for quarter-hour chimes and quiet hours

Cover previously uncovered lines in clock_service.py:
- Quarter-hour chimes when hourly/half-hour disabled (lines 71, 74)
- Same-day quiet hours range (line 126)
- Overnight quiet hours boundaries (line 122)

Coverage improved from 91% to 98%.

Closes #15

* test: add reset_chime_tracking test for 100% coverage (#17)

Closes #15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant