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

#IDModeHighlights
1snapline-ignore-fieldsAPI ↔ fileNested ignoreFields
2snapline-transformationsFixture casesOffline transformation failures
3snapline-data-mapping-lookupFixture casesLookup dataMapping
4db-vs-db-sqliteDB ↔ DBlinkKeys, multi-table
5db-vs-db-cross-dialectDB ↔ DBdemo seed_db stubs
6nosql-vs-nosqlNoSQLDocument stores
7snapline-data-mapping-functionFixture + DBFunction mapper
8db-comparison-transformationsDB ↔ DBDate transforms
9snapline-combined-optionsAPI ↔ DBAll options combined
10api-vs-file-restAPI ↔ fileOAuth2 REST
11api-vs-file-rest-casesFixture casesREST multi-case
12api-vs-file-graphqlFixture cases7 GraphQL cases
13api-vs-file-soapAPI ↔ fileSOAP
14–19api-vs-db-*, db-vs-api-*Cross-systemREST, GraphQL, SOAP vs demo SQLite
20project-graphqlFixture casesSample GraphQL app (Auth0/Okta pattern)
21project-dbWarehouseChunked 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