Final-review hardening:
- discover_printer falls back to direct IP reachability when printer_mac is
empty (restores legacy behavior; avoids permanent unreachable on misconfig).
Keeps the MAC check when a MAC IS set so we never print to a wrong DHCP tenant.
- bridge subprocess decodes child stdout as utf-8 explicitly, so a LANG=C systemd
locale can't UnicodeDecodeError on the success checkmark and mis-report error.
- add tests for both no-MAC fallback paths (5 passed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The prior commit only recorded the conftest.py deletion; this adds the actual
fix: tests/pytest.ini (pins rootdir to tests/ so the standard pytest command
no longer crashes on the dead /root/bin symlink) and the PEP8 import move.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add discover_printer(), _mac_of(), _port_open(), _sweep_arp(), _cache_ip()
with PRINTER_MAC/PRINTER_SUBNET/CACHE_FILE config + unit tests. Also adds
conftest.py to work around broken symlink that blocked pytest collection.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>