mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2026-09-20 20:35:56 +00:00
* Compare against a resolved data_dir in the history path-traversal test Watch.history resolves entries with os.path.realpath, so test_normal_snapshot_entry_is_accepted compared a resolved path against an unresolved data_dir. On macOS the datastore lives under /tmp, which is a symlink to /private/tmp, so the assertion fails for a path that is in fact inside the directory. The guard is correct; the test was not. Resolve both sides, matching what the production code does. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Add a test that actually exercises the history containment check Disabling the containment check in Watch.history left every test in TestHistoryPathTraversal passing. os.path.basename() reduces both traversal fixtures ('/etc/passwd', '../../etc/passwd') to 'passwd', so neither reaches the check — they stop at the os.path.exists() test below it. A bare '..' survives basename() and resolves to the parent of data_dir, which exists, so the containment check is what rejects it. With that check disabled this new test is the only one in the class that fails. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: GG5533 <285285461+GG5533@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>