O-lang resolver conformance and certification toolkit
Project description
O-Lang Resolver Test Suite
Language-agnostic conformance and certification tests for O-Lang resolvers.
O-Lang resolvers are executable contracts: small, deterministic units that perform actions described in O-Lang.
This test suite ensures that resolvers behave consistently, predictably, and safely across all programming languages that understand JSON.
TL;DR
- One contract
- One test suite
- Any programming language
- Deterministic, auditable resolvers
If your resolver passes these tests, it is O-Lang compliant.
What This Test Suite Does
The O-Lang Resolver Test Suite validates that a resolver:
- Declares required metadata (
resolverName,version) - Exposes a valid
resolve(input)entry point - Accepts structured JSON input
- Returns a strictly shaped response:
{ "output": ... }or{ "error": ... }
- Fails explicitly and predictably
- Behaves deterministically (same input → same output)
The same tests apply whether your resolver is written in:
- Python
- JavaScript (Node.js)
- Go
- Rust
- Java
- Or any language capable of JSON I/O
Why This Exists
Most systems don’t fail because of syntax errors.
They fail because contracts are unclear.
Without resolver conformance testing:
- Every resolver invents its own response format
- Error handling becomes inconsistent
- Cross-language execution breaks silently
- Tooling cannot reason about behavior
O-Lang solves this by enforcing resolver contracts with a shared, language-agnostic test suite.
Documentation & Guide
For a full walkthrough covering:
- Resolver contracts
- Test philosophy
- Python and JavaScript examples
- Cross-language guarantees
Read the official Medium article:
👉 How to Test O-Lang Resolvers in Python and JavaScript
https://medium.com/@o-lang/how-to-test-o-lang-resolvers-in-python-and-javascript-07e6fab4385f
Typical Resolver Structure
resolver-your-action/
├── resolver.py # or index.js, main.go, etc.
├── resolver.json
└── tests/
├── R-005-resolver-metadata-contract.json
├── R-006-resolver-runtime-shape.json
├── R-007-resolver-failure-contract.json
└── ...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file olang_resolver_test-0.1.5.tar.gz.
File metadata
- Download URL: olang_resolver_test-0.1.5.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18cc049fd7b2ca40d2a7ef4e842f9c6ffccd6c546f5d774561e2f7523a848c5b
|
|
| MD5 |
43bd8c88e9001c277621b5bcc3255327
|
|
| BLAKE2b-256 |
2159b81a7cf09322b589af44bdace09ede68e74e500a53f22af2e99d3ee9a7a4
|
File details
Details for the file olang_resolver_test-0.1.5-py3-none-any.whl.
File metadata
- Download URL: olang_resolver_test-0.1.5-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
381ede34f86ab055267efd3471029a050d0279787cf9eb97e4f970e1a86ce096
|
|
| MD5 |
c54edeca597b7cb17deec2672dd120ab
|
|
| BLAKE2b-256 |
ec06a674eca97cce1c057b0a449ca2d8b7eafe61b48c66be997395a2094032d1
|