You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Live integration smoke + fix create_folder_recursive cache bug
Live smoke test (tests/test_live_smoke.py) found a real cache-coherency
bug that all the unit-mocked tests missed:
create_folder_recursive() called self.api.create_folder() directly for
intermediate folders (e.g. 'A' and 'B' in '/A/B/C'). That bypasses the
parent-folder cache update that self.create_folder() performs, leaving
the parent cache stale. Subsequent resolve_path() walks then hit the
stale root cache and raised FileNotFoundError, even though the folders
definitely existed on the server.
Fixed by routing all parts through self.create_folder so every parent
cache stays in sync. Only the final part receives timestamp args.
Live smoke design:
- Auto-skips unless IXT_ACCOUNT and IXT_PWD are set in env (or .env).
- All operations confined to /__pytest_internxt_cli_smoke__/<run-uuid>/
with a fresh UUID per run.
- try/finally cleanup trashes the sentinel folder at module teardown,
even on assertion failure.
- No cassette recording — bytes/responses live only in memory; nothing
about the user's account is written to the repo.
- 4 tests: login+whoami, list root, full upload→list→download cycle
with byte-for-byte verification, path resolution.
.gitignore now excludes .env / .env.* (with .env.example escape hatch).
.env was never tracked; verified before push.
requirements-dev.txt: added python-dotenv (optional; tests fall back to
a built-in parser if not installed).
Updated test_create_folder_recursive_creates_missing_parts to match
the new (correct) cache-invalidating behavior; added regression note
referencing the live-smoke discovery.
CHANGELOG.md and readme.md updated with the new bug entry and live-
smoke documentation.
Stats: 557/557 unit tests + 4/4 live tests pass; 90% coverage holds.
0 commit comments