Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olang_resolver_test-0.1.4.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

olang_resolver_test-0.1.4-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file olang_resolver_test-0.1.4.tar.gz.

File metadata

  • Download URL: olang_resolver_test-0.1.4.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for olang_resolver_test-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1d93098629288ad720f8d2b4841fd908d999c2110e655895f1f1c44da0820e17
MD5 aeffbf5e347d29037946f72d8f60227f
BLAKE2b-256 99c07d4d5dcf17cbbcb13c311f70df06fe024cfc35533a2ada6ccfb2d196e61e

See more details on using hashes here.

File details

Details for the file olang_resolver_test-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for olang_resolver_test-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a08d79b7860a5274353589d7dcfd3fa0b60dbd839549469a72714b696dfca7b8
MD5 d8fb984a9937a71a754f3d160632b9c3
BLAKE2b-256 e79e3ccfe1d679b5f20404e6e6f16fea0918c2a92f06762ccaff072fe4611660

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page