Download tests/test_manifest.py from PYTHAI/mindXtrain: direct link, hf CLI and curl.
- Browser
- Download file 4.43 kB
-
https://huggingface.co/PYTHAI/mindXtrain/resolve/main/tests/test_manifest.py
- Command line
-
hf download hf://PYTHAI/mindXtrain/tests/test_manifest.py
-
curl -L -o test_manifest.py https://huggingface.co/PYTHAI/mindXtrain/resolve/main/tests/test_manifest.py
4.43 kB
| """custmodel Manifest + BLAKE3 hashing determinism.""" | |
| from __future__ import annotations | |
| import json | |
| from mindxtrain.provenance.hashing import blake3_dir, blake3_file | |
| from mindxtrain.provenance.manifest import Manifest, ProvenanceHashes | |
| def test_blake3_file_is_deterministic(tmp_path): | |
| p = tmp_path / "x.txt" | |
| p.write_text("hello mindXtrain") | |
| assert blake3_file(p) == blake3_file(p) | |
| assert len(blake3_file(p)) == 64 # hex digest of 32-byte blake3 output | |
| def test_blake3_dir_walks_sorted(tmp_path): | |
| (tmp_path / "a.txt").write_text("a") | |
| (tmp_path / "z.txt").write_text("z") | |
| sub = tmp_path / "sub" | |
| sub.mkdir() | |
| (sub / "m.txt").write_text("m") | |
| h1 = blake3_dir(tmp_path) | |
| h2 = blake3_dir(tmp_path) | |
| assert h1 == h2 | |
| assert len(h1) == 64 | |
| def test_blake3_dir_changes_with_content(tmp_path): | |
| (tmp_path / "a.txt").write_text("a") | |
| h1 = blake3_dir(tmp_path) | |
| (tmp_path / "a.txt").write_text("b") | |
| h2 = blake3_dir(tmp_path) | |
| assert h1 != h2 | |
| def test_manifest_round_trip(): | |
| hashes = ProvenanceHashes( | |
| config_yaml="0" * 64, | |
| dataset="1" * 64, | |
| checkpoint="2" * 64, | |
| eval_json="3" * 64, | |
| ) | |
| m = Manifest( | |
| run_id="instella-3b-alpaca-lora-demo", | |
| base_model="amd/Instella-3B-Instruct", | |
| blake3=hashes, | |
| ) | |
| blob = m.model_dump_json() | |
| restored = Manifest.model_validate(json.loads(blob)) | |
| assert restored.run_id == m.run_id | |
| assert restored.blake3.config_yaml == "0" * 64 | |
| assert restored.on_chain.inft.chain == "base_sepolia" | |
| def test_manifest_schema_dump(): | |
| schema = Manifest.model_json_schema() | |
| assert schema["title"] == "Manifest" | |
| assert "blake3" in schema["properties"] | |
| # ---- TimeAttestation + chronos integration ------------------------------ | |
| def test_manifest_carries_default_time_attestation(): | |
| from mindxtrain.provenance.manifest import Manifest, ProvenanceHashes, TimeAttestation | |
| m = Manifest( | |
| run_id="t", | |
| base_model="b", | |
| blake3=ProvenanceHashes( | |
| config_yaml="0" * 64, dataset="0" * 64, | |
| checkpoint="0" * 64, eval_json="0" * 64, | |
| ), | |
| ) | |
| assert isinstance(m.time_attestation, TimeAttestation) | |
| assert m.time_attestation.attested is False | |
| assert m.time_attestation.consensus == "offline" | |
| def test_fetch_time_attestation_falls_back_when_mindx_down(monkeypatch): | |
| """No httpx connection → attested=False (graceful).""" | |
| import httpx | |
| from mindxtrain.provenance import manifest as _m | |
| def _raise(*_a, **_kw): | |
| raise httpx.ConnectError("mindX down") | |
| transport = httpx.MockTransport(_raise) | |
| orig = httpx.Client | |
| monkeypatch.setattr( | |
| httpx, "Client", | |
| lambda *a, **kw: orig(*a, **{**kw, "transport": transport}), | |
| ) | |
| att = _m._fetch_time_attestation() | |
| assert att.attested is False | |
| assert att.consensus == "offline" | |
| def test_fetch_time_attestation_populates_from_live_response(monkeypatch): | |
| """consensus=correlated → attested True, fields propagated.""" | |
| import httpx | |
| from mindxtrain.provenance import manifest as _m | |
| body = { | |
| "unix_18dp": "1779169999.1", | |
| "utc": "2026-05-19T05:53:19+00:00", | |
| "consensus": "correlated", | |
| "confidence_ms": 12.5, | |
| "anchor_count_24h": 7, | |
| "promised_by": "chronos.agent", | |
| } | |
| transport = httpx.MockTransport(lambda req: httpx.Response(200, json=body)) | |
| orig = httpx.Client | |
| monkeypatch.setattr( | |
| httpx, "Client", | |
| lambda *a, **kw: orig(*a, **{**kw, "transport": transport}), | |
| ) | |
| att = _m._fetch_time_attestation() | |
| assert att.attested is True | |
| assert att.consensus == "correlated" | |
| assert att.confidence_ms == 12.5 | |
| assert att.anchor_count_24h == 7 | |
| assert att.promised_by == "chronos.agent" | |
| def test_fetch_time_attestation_does_not_attest_when_unavailable(monkeypatch): | |
| """consensus='unavailable' must NOT flip attested=True.""" | |
| import httpx | |
| from mindxtrain.provenance import manifest as _m | |
| transport = httpx.MockTransport( | |
| lambda req: httpx.Response(200, json={"consensus": "unavailable"}), | |
| ) | |
| orig = httpx.Client | |
| monkeypatch.setattr( | |
| httpx, "Client", | |
| lambda *a, **kw: orig(*a, **{**kw, "transport": transport}), | |
| ) | |
| att = _m._fetch_time_attestation() | |
| assert att.attested is False | |
| assert att.consensus == "unavailable" | |