Skip to content

[SPRINT-02-07] Add local collection indexing integration tests #94

@Gonza10V

Description

@Gonza10V

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

Goal

Add integration tests proving local SBOL fixture documents populate BuildCompiler's indexed runtime state correctly without any SynBioHub access.

Background

After adding a local indexing entry point and fixture documents, the project needs tests that prove local documents are actually usable by the current BuildCompiler runtime state. These tests should catch failures in role detection, implementation linking, fusion-site extraction, antibiotic extraction, and reagent indexing before assembly is attempted.

Scope

Add tests covering the local fixture path:

  • local fixture can be loaded into sbol2.Document;
  • local fixture indexes expected plasmids;
  • local fixture indexes expected backbones;
  • local fixture indexes expected enzyme/ligase implementation records or equivalent reagent records;
  • metadata-defect fixtures appear in the inventory audit;
  • incomplete fixtures produce expected audit warnings rather than silent empty indexes.

Suggested test names:

test_local_collection_indexes_plasmids
test_local_collection_indexes_backbones
test_local_collection_indexes_reagents
test_local_collection_audit_reports_missing_fusion_sites
test_local_collection_audit_reports_missing_antibiotic
test_local_indexing_never_calls_synbiohub_pull

Non-goals

  • Do not test live SynBioHub here.
  • Do not run assembly or protocol generation in this issue.
  • Do not require optional automation dependencies.

Acceptance criteria

  • Tests run offline.
  • Tests fail with readable audit output if indexing is wrong.
  • Tests prove local mode does not call sbh.pull.
  • Tests assert expected counts for plasmids, backbones, and reagents.
  • Tests assert diagnostic behavior for incomplete/metadata-defect fixtures.

Verification

pytest -k "local and index"
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