Skip to content

[SPRINT-02-06] Add canonical SBOL fixture collections for indexing and assembly tests #93

@Gonza10V

Description

@Gonza10V

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

Goal

Add small canonical SBOL2 fixture documents for software tests of indexing, selection, assembly-artifact generation, and transformation/plating boundaries.

Background

The current implementation needs known-good local SBOL fixtures before debugging higher-level behavior. Without deterministic fixtures, failures may come from malformed SBOL, missing implementations, inconsistent roles, missing fusion-site metadata, or missing antibiotic metadata rather than from BuildCompiler logic.

Scope

Create minimal fixtures under a path such as:

tests/fixtures/sbol/

Fixtures should cover:

  • a complete local inventory fixture sufficient for lvl1 route-selection tests;
  • a minimal design fixture that references the inventory fixture;
  • an incomplete inventory fixture for missing-input/audit tests;
  • a metadata-defect fixture for audit diagnostics.

Requirements

  • Fixtures are local/offline and load with sbol2.Document().read(...) or an equivalent helper.
  • Fixture identities and display IDs are deterministic.
  • Fixture structure matches current BuildCompiler indexing expectations.
  • Add small fixture-loader helpers if helpful.

Non-goals

  • Do not use live SynBioHub.
  • Do not add large real-world inventory dumps.
  • Do not add PUDU or Opentrons dependencies.
  • Do not add wet-lab protocol instructions.

Acceptance criteria

  • Fixture files or deterministic fixture builders are committed under tests.
  • At least one complete fixture indexes the expected plasmid/backbone/reagent counts.
  • At least one incomplete fixture produces expected audit diagnostics.
  • Fixture-read tests pass offline.
  • The fixtures are documented enough for future tests to reuse them.

Verification

pytest -k "fixture or sbol or index"
ruff check .

Codex implementation notes

Keep fixtures minimal. The goal is deterministic software regression coverage, not realistic experimental design.

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