Skip to content

Add provider contract tests shared across adapters #6

Description

@FlyLikeAPenguin

Each provider role (source, doc sink, tracker, notifier) is defined as a Protocol in src/providers/base.py, but conformance is only verified implicitly by the pipeline at runtime. As adapters are added -- Sentry, OTLP, and Jira are all queued -- a shared contract suite is what keeps them interchangeable.

Scope

  • A parametrized test suite each adapter is registered against, asserting the behaviour the pipeline relies on: return types, empty-result handling, and that failures raise rather than returning partial data.
  • Cover the existing adapters (datadog, markdown, notion, github, linear, console, slack) so the contract is pinned to current behaviour before new adapters land.
  • No network access: adapters are exercised against fakes at the transport boundary.

Done when

Adding a new adapter requires only registering it with the suite to get baseline coverage, and any divergence between two adapters in the same role fails a test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions