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.5.tar.gz (8.0 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.5-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

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

Hashes for olang_resolver_test-0.1.5.tar.gz
Algorithm Hash digest
SHA256 18cc049fd7b2ca40d2a7ef4e842f9c6ffccd6c546f5d774561e2f7523a848c5b
MD5 43bd8c88e9001c277621b5bcc3255327
BLAKE2b-256 2159b81a7cf09322b589af44bdace09ede68e74e500a53f22af2e99d3ee9a7a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for olang_resolver_test-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 381ede34f86ab055267efd3471029a050d0279787cf9eb97e4f970e1a86ce096
MD5 c54edeca597b7cb17deec2672dd120ab
BLAKE2b-256 ec06a674eca97cce1c057b0a449ca2d8b7eafe61b48c66be997395a2094032d1

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