Testing Plugins¶
Status: Available in ETLantic 0.9+ via
etlantic.testing.
Testing helpers provide conformance suites so third-party plugins can prove they implement the public protocols correctly.
Shipped suites¶
| Suite | Module | Use for |
|---|---|---|
| Dataframe conformance | etlantic.testing.run_conformance_suite |
Polars/Pandas-style plugins |
| SQL conformance | etlantic.testing.run_sql_conformance_suite |
SqlPlugin |
| Orchestrator conformance | etlantic.testing.run_orchestrator_conformance_suite |
OrchestratorPlugin |
| Secret conformance | etlantic.testing.run_secret_conformance_suite |
SecretProvider |
| Write-semantics parity | etlantic.testing.run_write_semantics_parity_suite |
Cross-engine write modes |
| Portable transform compiler | etlantic.testing.run_portable_transform_conformance_suite |
TransformCompiler plugins |
Example:
from etlantic.testing import run_conformance_suite
run_conformance_suite(my_plugin, engine="my-engine", sample_rows=rows)
from etlantic.testing import run_portable_transform_conformance_suite
from my_engine import create_transform_compiler
run_portable_transform_conformance_suite(create_transform_compiler())
The portable suite is also importable as
etlantic.testing.portable_transform_conformance. It selects mandatory
fixtures from the exact profiles, actions, and functions a compiler
advertises. Claiming a capability without its fixture family fails the suite.
Philosophy¶
Every plugin should be tested against the same expectations:
Plugin
│
▼
SDK Conformance Suite
│
├── Discovery / registration
├── Capability advertisement
├── Semantic behavior
└── Failure / diagnostic shape
A plugin that passes the matching suite should behave predictably with ETLantic planning and runtime.
Compatibility policy¶
- Claim only capabilities your compiler passes in the public suite.
- Pin
etlantic(and this suite) to the minor you certified against. - Fail closed at
analyze()for unsupported modes; do not degrade silently. - Keep plans, explain payloads, and diagnostics secret-free.
Next Step¶
See Dataframe Plugin, SQL Plugin, Orchestrator Plugin, Portable Transformation Compiler, and Secret Provider for protocol details.