fix(windows): reconcile test expectations and get_node lookups with POSIX identities (#774)
Completes the #774 fix on top of the producer/consumer normalization in
5ee2a12, addressing the two gaps found in review:
- Test-suite sweep: expectations built from str(path) / f"{path}::name"
on real Path objects asserted OS-native separators, so the POSIX
identity change alone worsened Windows (18 -> 56 failures per the
issue reporter). All identity-bearing expectations across 23 test
files now use path.as_posix(); native-spelling inputs to bridged
store/parser entry points are deliberately kept native so the
bridging keeps getting exercised. Direct SQL file_path parameters and
manually seeded EdgeInfo source/target identities (which bypass
normalization) are POSIX too, matching what the parser produces.
- GraphStore.get_node bridging: qualified-name lookups now retry with
the path component (before the first "::") POSIX-normalized when the
exact spelling misses, mirroring the existing file-keyed bridges
(iter_nodes_by_file, remove_file_data, get_files_matching, ...).
The symbol part is never rewritten, so PHP fully-qualified names
keep their backslashes; regression tests cover both behaviors with
PureWindowsPath-derived lookups.
Both Windows regressions demonstrated in review were re-simulated with
the same PureWindowsPath methodology and pass: the module-scope CALLS
assertions in test_parser.py and the C++ overload identity test
including the store.get_node("{native}::markChanged()") crash site.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FmPUotoqsNWWt3b41FMjwv T
Tirth Kanani committed
f060c57b90dcc9dd3a59c19b78091ba5dcb09e1c
Parent: 5ee2a12