Skip to content

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

@Gonza10V

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions