| Message ID | 20260724115020.38079-1-twoerner@gmail.com |
|---|---|
| Headers | show |
| Series | oe/path: three fixes plus unit coverage | expand |
On Fri, 2026-07-24 at 07:50 -0400, Trevor Woerner via lists.yoctoproject.org wrote: > This series continues the standalone unit-test work, this time over > oe/path.py. It follows the same shape the suite settled on: each > source fix is its own standalone commit, and the green test module > lands last, so the suite passes at every commit. > > Three fixes come first, each independent of the others: > > - __realpath's isdir guard assigns a bare `false`, which is not a > Python name; when os.path.isdir() raises, the handler meant to > absorb the error raises NameError instead. Use the builtin False. > - symlink(force=True) cleared the destination through remove(), which > globs its argument; a destination containing glob metacharacters > could fail to match itself or match unrelated files. Remove the > literal destination instead. > - canonicalize('') and canonicalize(None) returned the current > working directory, because os.path.realpath('') does; a stray > separator injected a spurious cwd entry too. Skip empty tokens. > > The final commit adds tests/unit/test_oe_path.py, covering oe/path's > own logic (join, is_path_parent, symlink, make_relative_symlink, > canonicalize, which_wild, realpath) and locking in the three fixes. > Backing any fix out turns the matching test red. The suite is green > and ruff-clean, and the series passes oe-core's wic oe-selftest with > no regressions. > > These same three fixes and their equivalent selftest coverage have now > landed in OE-core (meta/lib/oe/path.py and oeqa/selftest/liboe.py), > where oe/path.py originates. wic vendors a copy of that module; this > series keeps the vendored copy from diverging by carrying the identical > fixes, with the coverage expressed as wic's own pytest suite. > > Trevor Woerner (4): > oe/path: fix bare `false` NameError in __realpath's isdir guard > oe/path: don't glob-expand the destination in symlink(force=True) > oe/path: canonicalize('') should return '' rather than the cwd > tests/unit/test_oe_path: cover oe/path's own path logic LGTM, assuming these are direct copies of what was added to OE-core. Best regards,
This series continues the standalone unit-test work, this time over oe/path.py. It follows the same shape the suite settled on: each source fix is its own standalone commit, and the green test module lands last, so the suite passes at every commit. Three fixes come first, each independent of the others: - __realpath's isdir guard assigns a bare `false`, which is not a Python name; when os.path.isdir() raises, the handler meant to absorb the error raises NameError instead. Use the builtin False. - symlink(force=True) cleared the destination through remove(), which globs its argument; a destination containing glob metacharacters could fail to match itself or match unrelated files. Remove the literal destination instead. - canonicalize('') and canonicalize(None) returned the current working directory, because os.path.realpath('') does; a stray separator injected a spurious cwd entry too. Skip empty tokens. The final commit adds tests/unit/test_oe_path.py, covering oe/path's own logic (join, is_path_parent, symlink, make_relative_symlink, canonicalize, which_wild, realpath) and locking in the three fixes. Backing any fix out turns the matching test red. The suite is green and ruff-clean, and the series passes oe-core's wic oe-selftest with no regressions. These same three fixes and their equivalent selftest coverage have now landed in OE-core (meta/lib/oe/path.py and oeqa/selftest/liboe.py), where oe/path.py originates. wic vendors a copy of that module; this series keeps the vendored copy from diverging by carrying the identical fixes, with the coverage expressed as wic's own pytest suite. Trevor Woerner (4): oe/path: fix bare `false` NameError in __realpath's isdir guard oe/path: don't glob-expand the destination in symlink(force=True) oe/path: canonicalize('') should return '' rather than the cwd tests/unit/test_oe_path: cover oe/path's own path logic src/wic/oe/path.py | 21 ++- tests/unit/test_oe_path.py | 378 +++++++++++++++++++++++++++++++++++++ 2 files changed, 396 insertions(+), 3 deletions(-) create mode 100644 tests/unit/test_oe_path.py