Add info-tech-canon as first dry-run pilot candidate, exercise onboarding routine
Maintainer chose info-tech-canon (outside the original four product lines) as the actual first repo to build up the practical Phase-declaration routine on, explicitly confirmed as a dry run, not a T05 go-live decision. Adds a third draft, non-binding manifest (examples/pilot-candidates/info-tech-canon-service-surface/): the cumulative service surface across ITC-WP-0001-0012 (all finished), Product-defining (100x). Flags a notable complication rather than smoothing it over: this repo's current LICENSE is already MIT-0, so a real Phase here would mean replacing an already-open license with restricted pre-conversion TRSL terms - a materially different step than the other two candidates. Exercised the full onboarding routine end-to-end against a real, ephemeral local instance of the hosted Trust Service (Docker Postgres, migrations applied, binky Licensor token seeded, uvicorn running the actual service/app.py): register-phase -> append-entry -> status all worked via scripts/trf_onboard.py exactly as specs/TrustServiceOnboarding.md describes, no code changes needed. Dry-run infrastructure torn down afterward; only the draft manifest files persist.
This commit is contained in:
parent
a29d781d92
commit
b0f61b2d8b
7 changed files with 122 additions and 17 deletions
|
|
@ -16,20 +16,21 @@ from target_revenue import validation
|
|||
PILOT_CANDIDATES_DIR = REPO_ROOT / "examples" / "pilot-candidates"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"name",
|
||||
["net-kingdom-local-identity", "railiance-vergabe-teilnahme"],
|
||||
)
|
||||
PILOT_CANDIDATE_NAMES = [
|
||||
"net-kingdom-local-identity",
|
||||
"railiance-vergabe-teilnahme",
|
||||
"info-tech-canon-service-surface",
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", PILOT_CANDIDATE_NAMES)
|
||||
def test_pilot_candidate_manifest_is_conformant(name):
|
||||
manifest = json.loads((PILOT_CANDIDATES_DIR / name / "manifest.json").read_text())
|
||||
validation.validate_phase_manifest(manifest)
|
||||
assert manifest["phase"]["id"].startswith("trsl:phase:draft-")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"name",
|
||||
["net-kingdom-local-identity", "railiance-vergabe-teilnahme"],
|
||||
)
|
||||
@pytest.mark.parametrize("name", PILOT_CANDIDATE_NAMES)
|
||||
def test_pilot_candidate_ledger_is_empty_draft_state(name):
|
||||
ledger = json.loads((PILOT_CANDIDATES_DIR / name / "ledger.json").read_text())
|
||||
assert ledger == [], "draft candidates must not carry any real ledger entries"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue