Sweep follow-up to 93e43fc. Display labels now consistent across docs,
landing pages, CLI output, code comments, docstrings, and test prose.
Five parallel surfaces touched:
- docs (EN + ES): README, USER-GUIDE, CLI-REFERENCE, and 11 internal
design/planning docs
- landing pages: index + bookkeeper/revops/shopify-pet
- src: CLI module docstrings, _TOOL_DISPLAY dicts in cli_analyze.py
and gui/components/_legacy.py, core module headers, every tool
page's module docstring
- tests: class/method/module docstrings and section-header comments
- test-cases READMEs
Page slugs (1_Deduplicator etc.), tool_id strings (01_deduplicator
etc.), Python class names (TestDeduplicatorWorkflow, FeatureFlag.*),
URL paths, anchor IDs, CSS classes, and asset filenames were left
intact since they're code identifiers / structural references.
All 2033 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
1.6 KiB
Markdown
24 lines
1.6 KiB
Markdown
# Map Columns — corpus
|
|
|
|
Acceptance fixtures for `src/core/column_mapper.py`. Each `.csv` under
|
|
`test_data/` is paired with assertions in
|
|
`tests/test_column_mapper_corpus.py`.
|
|
|
|
## Use cases (target client profiles)
|
|
|
|
| File | Buyer profile | Tested behaviour |
|
|
|------|---------------|------------------|
|
|
| `uc01_crm_import.csv` + `schemas/uc01_crm_target.json` | Sales ops admin importing leads into Salesforce / HubSpot | Schema enforcement: rename via aliases, coerce types, drop extras, add `owner` default. |
|
|
| `uc02_vendor_{a,b,c}.csv` + `schemas/uc02_canonical.json` | Operator unifying vendor exports | Multi-source unification: each vendor uses different headers; auto-inference resolves them all. |
|
|
| `uc03_type_coercion.csv` + `schemas/uc03_types.json` | Analyst quick-fixing a mistyped CSV | Mixed-type coercion with documented per-column failure counts (bad rows survive as NaN). |
|
|
|
|
## Edge cases
|
|
|
|
| File | Stresses |
|
|
|------|----------|
|
|
| `ec01_duplicate_target.csv` | Mapping two source columns to the same target → InputValidationError. |
|
|
| `ec02_unicode_columns.csv` | Non-ASCII column names (Japanese) survive rename and coerce. |
|
|
| `ec03_whitespace_headers.csv` | Leading/trailing whitespace in headers still fuzzy-matches the schema. |
|
|
| `ec04_no_match.csv` | No source column scores above threshold → empty mapping, fallback unmapped strategy fires. |
|
|
| `ec05_required_missing.csv` | Required target field has no source column → InputValidationError unless `enforce_required=False`. |
|