Skip to content

[SPRINT-02-08] Add optional SynBioHub pull-to-index equivalence tests #95

Description

@Gonza10V

Parent sprint: #87
Depends on: #88, #89, #90, #91, #93, #94
Recommended order: 8
Codex-ready: yes

Goal

Add optional/manual tests that prove SynBioHub-pulled collections go through the same indexing semantics as local SBOL documents.

Background

The current constructor path pulls collection URIs directly into self.sbol_doc and then indexes that document. After #88-#91, local and remote paths should share one indexing implementation. This issue adds tests to prevent those paths from diverging.

Scope

Add tests or test scaffolding for:

  • successful URI pull into a document followed by shared indexing;
  • comparing audit counts from a mocked/pulled document against the local fixture expectation;
  • fetch failure diagnostics for an invalid/missing URI;
  • marker-based separation from core offline tests.

Use mocks by default where possible. If a live SynBioHub test is added, it must be clearly marked and skipped unless credentials/config are present.

Non-goals

  • Do not require network access in default CI.
  • Do not store secrets or auth tokens in the repository.
  • Do not change biological/indexing semantics in this test-only issue unless required to make the shared path work.

Acceptance criteria

  • Core test suite does not require SynBioHub access.
  • Mocked SynBioHub pull path uses the same index_sbol_document path as local indexing.
  • Equivalent local and pulled fixture documents produce comparable inventory audit counts.
  • Failed pull reports the URI and failure context.
  • Live integration test, if present, is marked optional/manual.

Verification

pytest -k "synbiohub or pull or equivalence"
pytest -m "not automation"
ruff check .

Codex implementation notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions