[Testing]: Expand automated coverage for documented product features #160
Labels
No labels
Kind/Bug
Kind/Feature
Priority/High
Priority/Medium
Reviewed/Confirmed
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ai-collab/bulk-image-organizer#160
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add automated tests that lock documented user-facing behavior so future enhancements do not regress feature intent.
Scope
Focus on documented behavior from
resources/help/USER_GUIDE.mdanddocs/TECHNICAL_OUTLINE.mdthat is currently untested or only partially covered. Tests should assert intent, not implementation accidents.Highest-value gaps:
DupeWorkerscan and cancel-keeps-partial groupsOut of scope
Manual platform checklist items from DESIGN.md remain manual: 10k corpus, real send2trash UX, portable DB move, long paths, large files.
Acceptance
tests/and follow existing pytest / pytest-qt patternsruffand the relevant pytest subset passCoverage for the listed documented-feature gaps is on
0.4.3/issue-160-test-coverage.Added/extended tests lock feature intent (not incidental implementation):
DupeWorkercreatesV-DUPE_#, does not compute exact hashes, cancel-during-hash creates no tags, cancel-during-assignment keeps groups already writtenStill manual per DESIGN.md: 10k corpus, real send2trash UX, portable DB move, long paths, large files.
Leaving the issue open until this is reviewed/merged.
Follow-up: audited the full suite (not just the new coverage) and cleaned weak cases on the same branch.
Removed: no-assert theme/shutdown smokes,
test_basic.py/ tautological version identity, existence-onlyrelease_build_neededscript check, duplicate active-tag proxy test, duplicate help/icon file-exists tests.Replaced/strengthened: Keep criteria now assert the exact winner per id; Multi layout asserts exact
(cols, rows)plus empty/zero-canvas cases; theme asserts palette +current_theme(); rescan asserts disabled / Cancel / Re-scan; closeEvent asserts_shutting_downand leaving the viewer; Tag Filter Show DUPE Tags actually rebuilds the section; IconMode view asserts cell layout; missing git refspytest.skipinstead of silentreturn.250 tests in the touched files passed.
Follow-up: aligned code + tests with the documented product (not just the old narrower implementation).
DUPE-FILE_,DUPE_, andDupe_are recognized as duplicate tags for filters, cleanup, panel exclusion, and sort eligibility. File vs visual split:DUPE-FILE_with exact groups;DUPE_/Dupe_with visual. New scans still only createF-DUPE_/V-DUPE_.max_edge=None). Explicitmax_edgestill caps previews. Tests assert the tall-image Qt allocation path stays full-size.VERSIONis0.4.3-testing.160.Implemented on
0.4.3/issue-160-test-coverageand opened as PR #161 (VERSION0.5.0).Coverage, suite cleanup, product alignment (legacy dupe prefixes + full-resolution viewer/Multi), leftover API removal, and the AppImage no-build skip fix are all in that PR. Closing this issue; remaining review happens on the PR.