CSV Desk delivery practice tests
Date: October 29, 2026
Environment: Python 3.14.9 on macOS (Darwin)
Scope: local file-level tests only. No Excel, Windows or external upload test.
Command: python3 test_csv_delivery.py
Result: PASS; 59 checks

Split: 8 input records -> 3, 3, 2; quantity total 18.
Compare: 7 before and 7 after; 1 added, 1 removed, 4 changed, 2 unchanged; 5 changed fields.

Checks actually executed:
- Split counts are 3, 3, 2
- Header repeated in part-001.csv
- Hash matches saved part part-001.csv
- Header repeated in part-002.csv
- Hash matches saved part part-002.csv
- Header repeated in part-003.csv
- Hash matches saved part part-003.csv
- Decoded rows and order preserved exactly
- Independent expected boundaries match
- Embedded CRLF preserved at part boundary
- Eight records, leading zeros and quantity total 18
- Blank, Unicode, quotes and double spaces preserved
- Completion manifest present
- Existing split destination protected
- Invalid split count rejected 0
- Invalid split count rejected -1
- Invalid split count rejected 1000001
- Exact multiple has no empty tail
- Limit larger than input makes one file
- Changed records counted once, five changed fields
- Before and after populations reconcile
- Status report matches independent expected bytes
- Field report matches independent expected bytes
- Identical input has only unchanged records
- Reverse comparison swaps before and after values
- Existing diff destination protected
- empty rejected before creating split folder
- empty leaves no output folder
- duplicate-header rejected before creating split folder
- duplicate-header leaves no output folder
- blank-header rejected before creating split folder
- blank-header leaves no output folder
- spaced-header rejected before creating split folder
- spaced-header leaves no output folder
- bad-width rejected before creating split folder
- bad-width leaves no output folder
- blank-line rejected before creating split folder
- blank-line leaves no output folder
- unclosed-quote rejected before creating split folder
- unclosed-quote leaves no output folder
- encoding rejected before creating split folder
- encoding leaves no output folder
- Oversize input rejected
- Header-only input cannot be split
- Two header-only files compare as empty
- duplicate key stops comparison
- duplicate key leaves no report
- blank key stops comparison
- blank key leaves no report
- edge-space key stops comparison
- edge-space key leaves no report
- Schema mismatch stops comparison
- Missing key column stops comparison
- Case-sensitive keys give added and removed records
- Whitespace-only value change is visible
- split documented CLI succeeds
- compare documented CLI succeeds
- CLI refuses existing folder with STOP message
- All downloaded fixture bytes unchanged

Fixture SHA-256:
split-input.csv  a78e2ab98124863998ee9e73b564cc3bd04b3612dabbaffc808b3f880594b0d6
split-expected-counts.csv  e2fd3b4a092031ca470445ce5b60700be678037533365be98d96b165d714b8d8
changes-before.csv  911f58ca80b93f197a2b5450cfc4c60ea88f8d00cb6ca92e606a3d25ca191f13
changes-after.csv  971f77997cd8000801c7e459f12e1e62da3bdb4f1b748d74695d78c716182d91
changes-expected-status.csv  581800d083addc55659f021fa2abaa66664f1dd5b53efe00cc5b5c55de77db2a
changes-expected-fields.csv  4d6b1dd1c809e2f484e4b32e9bcade1d5c0fbbd49ae5c7ca6dbf81afe191cd18

All examples are fictional. PASS describes the tested fixtures and boundaries, not arbitrary business data. Reports compare strings exactly. Source hashes identify the inputs, not their business correctness.
