agentsclimarketplace

Multi service integration testing

Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v1/skills/multi-service-integration-testing

Curated, evidence-grounded skill and software-tool collections for scientific AI agents, generated by the AgenticScienceBuilder

Install
npx -y skills add HolobiomicsLab/asb-skill-collections --skill multi-service-integration-testing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when when building or modifying an asynchronous annotation pipeline that dispatches metadata enrichment requests to multiple heterogeneous web services and must verify that each service's HTTP calls succeed, response parsing is correct, and enriched fields are correctly merged into the output.

The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.7 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

multi-service-integration-testing

Summary

Validate that an asynchronous metadata enrichment pipeline correctly queries multiple external web services (CIR, CTS, PubChem, IDSM, BridgeDb), parses their responses, and aggregates enriched metadata back into mass spectra records. This skill ensures that service-specific converters handle API communication, response parsing, and data fusion without breaking existing functionality.

When to use

When building or modifying an asynchronous annotation pipeline that dispatches metadata enrichment requests to multiple heterogeneous web services and must verify that each service's HTTP calls succeed, response parsing is correct, and enriched fields are correctly merged into the output spectra records without data loss or corruption.

When NOT to use

  • Input spectra file is already fully annotated with all target metadata fields (no enrichment needed)
  • Only local, in-process metadata transformations are required (no web service calls needed)
  • Testing a single converter in isolation without integration with the asynchronous dispatch loop

Inputs

  • .msp spectra file (sample with known compound names/identifiers)
  • conversion job specifications (source attribute, target attribute, converter service)
  • list of web services (CIR, CTS, PubChem, IDSM, BridgeDb)
  • mock or live API responses from each service

Outputs

  • annotated .msp file with enriched metadata (SMILES, InChI, CAS, formula, InChIKey, IUPAC name)
  • test report confirming all service queries succeeded
  • verification that parsed metadata matches expected schema and types
  • pytest output showing no regressions in existing tests

How to apply

Set up a test suite that (1) loads a sample .msp spectra file with known compound names or identifiers; (2) configures conversion jobs specifying source attributes (e.g., compound name), target attributes (e.g., SMILES, InChI, CAS), and converter services; (3) invokes the asynchronous annotate_spectra method to dispatch requests to each web service; (4) for each job, verifies that the WebConverter base class correctly calls query_the_service to make HTTP requests to the target API endpoint; (5) validates that service-specific parse_response methods extract and return the expected metadata fields; (6) confirms that enriched metadata is aggregated back into the spectra records with no field omission or type mismatch; (7) runs the full test suite with pytest to ensure no regressions in existing converter functionality. Use RDKit as a reference implementation for local converters to validate the pattern.

Related tools

Examples

asyncio.run(app.annotate_spectra(['CTS', 'CIR', 'IDSM', 'PubChem', 'BridgeDb'], [('name', 'inchi', 'IDSM'), ('inchi', 'formula', 'IDSM'), ('inchi', 'inchikey', 'IDSM')]))

Evaluation signals

  • All conversion jobs complete without timeout or HTTP errors; each service returns a non-null response
  • Parsed metadata fields (SMILES, InChI, CAS, formula, InChIKey, IUPAC name) match the schema and data types expected by the .msp format
  • Enriched metadata is correctly merged back into the spectra records; no fields are lost or overwritten incorrectly
  • pytest run passes all existing tests; no regressions introduced in other converters or the core annotation pipeline
  • Output .msp file is valid, readable, and contains all enriched metadata fields with non-empty values where services returned results

Limitations

  • External web services (CIR, CTS, PubChem, IDSM, BridgeDb) may have rate limits, downtime, or API changes that break parsing; integration tests may fail transiently without code changes
  • Service-specific parse_response methods may fail on unexpected API response structures or error messages; test coverage must account for documented service behavior variations
  • Asynchronous implementation introduces complexity in test setup and teardown (event loop management); mock services or recorded responses may not capture all real-world failure modes
  • Input compound names may be ambiguous or unresolved by multiple services, leading to partial enrichment; tests must validate graceful handling of missing or null metadata

Evidence

  • [other] MSMetaEnhancer enriches .msp files by adding SMILES, InChI, and CAS number metadata retrieved from five external services: "MSMetaEnhancer enriches .msp files by adding SMILES, InChI, and CAS number metadata retrieved from five external services: CIR, CTS, PubChem, IDSM, and BridgeDb."
  • [other] The asynchronous annotation method dispatches requests to web services via WebConverter base class: "Invoke the asynchronous annotate_spectra method with the defined jobs to dispatch metadata enrichment requests to web services. For each job, the WebConverter base class calls query_the_service"
  • [other] Service-specific methods extract and parse metadata fields from API responses: "Parse API responses using service-specific parse_response methods to extract SMILES, InChI, CAS and other metadata fields."
  • [readme] The app uses asynchronous implementation allowing for optimal fetching speed: "The app uses asynchronous implementation of annotation process allowing for optimal fetching speed."
  • [other] RDKit converter serves as reference implementation for extending the annotation pipeline: "Use the RDKit converter as a reference implementation"
  • [other] Existing tests must pass when modifications are made to converters or the annotation pipeline: "make sure the existing tests still work by running pytest"

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,984. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.