Demo Scenarios
21 integration scenarios with the same IDs as the Node.js repo. No build step — run directly with uv or python.
Commands
uv sync
uv run demo
uv run demo-list
uv run demo-run api-vs-file-graphql
python demo/run_all/run_all.py
All 21 scenarios
| # | ID | Mode | Highlights |
|---|---|---|---|
| 1 | snapline-ignore-fields | API ↔ file | Nested ignoreFields |
| 2 | snapline-transformations | Fixture cases | Offline transformation failures |
| 3 | snapline-data-mapping-lookup | Fixture cases | Lookup dataMapping |
| 4 | db-vs-db-sqlite | DB ↔ DB | linkKeys, multi-table |
| 5 | db-vs-db-cross-dialect | DB ↔ DB | demo seed_db stubs |
| 6 | nosql-vs-nosql | NoSQL | Document stores |
| 7 | snapline-data-mapping-function | Fixture + DB | Function mapper |
| 8 | db-comparison-transformations | DB ↔ DB | Date transforms |
| 9 | snapline-combined-options | API ↔ DB | All options combined |
| 10 | api-vs-file-rest | API ↔ file | OAuth2 REST |
| 11 | api-vs-file-rest-cases | Fixture cases | REST multi-case |
| 12 | api-vs-file-graphql | Fixture cases | 7 GraphQL cases |
| 13 | api-vs-file-soap | API ↔ file | SOAP |
| 14–19 | api-vs-db-*, db-vs-api-* | Cross-system | REST, GraphQL, SOAP vs demo SQLite |
| 20 | project-graphql | Fixture cases | Sample GraphQL app (Auth0/Okta pattern) |
| 21 | project-db | Warehouse | Chunked SQL→NoSQL via run_warehouse_comparison |
Published snapline-core depends only on httpx and does not ship SQL drivers. Demos use snapline.demo_shared for SQLite and in-memory stubs.
Scenario layout
demo/scenarios/api-vs-file-graphql/
├── scenario.py # Scenario class + test_suite config
├── demo_data.py # transforms / mappings
├── env.py # env + reports
├── auth.py # OAuth (when needed)
└── fixtures/cases/...
Reports
REPORT_FORMAT=html REPORT_OUTPUT=reports/demo.html uv run demo