Skip to main content

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
    └── ...

Release files for olang-resolver-test 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for olang-resolver-test 0.1.5
File Size Uploaded
olang_resolver_test-0.1.5.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for olang-resolver-test 0.1.5
File Interpreter ABI Platform
olang_resolver_test-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 16.5 kB

Release files / olang_resolver_test-0.1.5.tar.gz

Download URL olang_resolver_test-0.1.5.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
18cc049fd7b2ca40d2a7ef4e842f9c6ffccd6c546f5d774561e2f7523a848c5b
BLAKE2b-256 checksum
How to use checksums
2159b81a7cf09322b589af44bdace09ede68e74e500a53f22af2e99d3ee9a7a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release files / olang_resolver_test-0.1.5-py3-none-any.whl

Download URL olang_resolver_test-0.1.5-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
381ede34f86ab055267efd3471029a050d0279787cf9eb97e4f970e1a86ce096
BLAKE2b-256 checksum
How to use checksums
ec06a674eca97cce1c057b0a449ca2d8b7eafe61b48c66be997395a2094032d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page