• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

informatics-isi-edu / deriva-mcp-core / 26183954340
90%

Build:
DEFAULT BRANCH: main
Ran 20 May 2026 07:07PM UTC
Jobs 1
Files 39
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 May 2026 07:06PM UTC coverage: 90.088%. Remained the same
26183954340

push

github

web-flow
fix(vocabulary): use deriva-py Table.define_vocabulary for canonical schema (#9)

create_vocabulary produced non-functional vocabulary tables. The
original implementation defined ID and URI as plain text with
nullok=False and no server-side default. Subsequent add_term
calls submit only Name (and optionally Description / Synonyms)
and rely on the catalog to fill in ID and URI from the RID via
the pseudo-type defaults. With plain text + NOT NULL + no
default, every add_term insert was rejected with:

    null value in column "URI" violates not-null constraint

Route through deriva-py's Table.define_vocabulary, which produces
the canonical DERIVA vocabulary schema:

  - ID:   ermrest_curie, NOT NULL, default "{schema}:{RID}"
  - URI:  ermrest_uri,   NOT NULL, default "/id/{RID}"
  - Name: text,          NOT NULL, unique
  - Description: markdown, NOT NULL
  - Synonyms:    text[]

The pseudo-types are the load-bearing part: they tell ERMrest to
auto-generate values from the RID, which is what add_term relies
on. The curie template uses {schema}:{RID} so terms carry a
stable, schema-scoped identifier.

Surfaced by e2e Phase 6 (catalog 46, creating a
Prediction_Confidence_Bucket feature on Image): every add_term
call hit the NOT NULL violation. Compare to existing Image_Class
on catalog 46 which uses the canonical pseudo-types.

Tests (tests/test_tools.py):
  * test_create_vocabulary_uses_canonical_pseudo_types -- new
    regression test asserting the captured table_def has
    type.typename == "ermrest_uri" for URI and "ermrest_curie"
    for ID, with default templates containing "{RID}" and the
    schema-scoped prefix on ID.

Existing test_create_vocabulary and test_create_vocabulary_error
unchanged and still pass.

Removed Column / Key / builtin_types imports -- no longer used
in this module after the refactor.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

2 of 2 new or added lines in 1 file covered. (100.0%)

3181 of 3531 relevant lines covered (90.09%)

0.9 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26183954340.1 20 May 2026 07:07PM UTC 39
90.09
GitHub Action Run
Source Files on build 26183954340
  • Tree
  • List 39
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 376df57d on github
  • Prev Build on main (#26143496956)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc