Download tests/test_model_store.py from dougvk/Unlimited-OCR-RDNA4: direct link, hf CLI and curl.
- Browser
- Download file 4.66 kB
-
https://huggingface.co/dougvk/Unlimited-OCR-RDNA4/resolve/main/tests/test_model_store.py
- Command line
-
hf download hf://dougvk/Unlimited-OCR-RDNA4/tests/test_model_store.py
-
curl -L -o test_model_store.py https://huggingface.co/dougvk/Unlimited-OCR-RDNA4/resolve/main/tests/test_model_store.py
4.66 kB
| import hashlib | |
| import pytest | |
| import unlimited_ocr_rdna4.model_store as model_store | |
| from unlimited_ocr_rdna4.errors import ModelIntegrityError | |
| def _synthetic_upstream() -> str: | |
| lines = [ | |
| "from .modeling_deepseekv2 import DeepseekV2Model, DeepseekV2ForCausalLM", | |
| "cor_list = eval(ref_text[2])", | |
| "lines = eval(outputs)['Line']['line']", | |
| "line_type = eval(outputs)['Line']['line_type']", | |
| "endpoints = eval(outputs)['Line']['line_endpoint']", | |
| "p0 = eval(line.split(' -- ')[0])", | |
| "p1 = eval(line.split(' -- ')[-1])", | |
| "(x, y) = eval(endpoint.split(': ')[1])", | |
| "images_seq_mask[idx].unsqueeze(-1).cuda()", | |
| ] | |
| for _ in range(3): | |
| lines.extend( | |
| [ | |
| " input_ids=input_ids.unsqueeze(0).cuda(),", | |
| " eos_token_id=tokenizer.eos_token_id,", | |
| ] | |
| ) | |
| return "\n".join(lines) + "\n" | |
| def test_patch_is_exact_and_idempotent(monkeypatch) -> None: | |
| source = _synthetic_upstream() | |
| monkeypatch.setattr(model_store, "UPSTREAM_MODEL_CODE_SHA256", model_store.sha256_text(source)) | |
| monkeypatch.setattr(model_store, "PATCHED_MODEL_CODE_SHA256", "__TO_BE_FILLED__") | |
| patched = model_store.patch_model_source_text(source) | |
| patched_hash = model_store.sha256_text(patched) | |
| assert patched.count("ast.literal_eval(") == 7 | |
| assert patched.count("attention_mask=torch.ones_like") == 3 | |
| assert patched.count("pad_token_id=tokenizer.eos_token_id") == 3 | |
| assert ".to(inputs_embeds.device)" in patched | |
| monkeypatch.setattr(model_store, "PATCHED_MODEL_CODE_SHA256", patched_hash) | |
| assert model_store.patch_model_source_text(patched) == patched | |
| def test_patch_rejects_unknown_source() -> None: | |
| with pytest.raises(ModelIntegrityError, match="refusing to patch unknown model code"): | |
| model_store.patch_model_source_text("unknown") | |
| def test_verify_model_reports_missing_directory(tmp_path) -> None: | |
| with pytest.raises(ModelIntegrityError, match="real directory"): | |
| model_store.verify_model(tmp_path / "missing") | |
| def test_verify_model_with_small_fixture(tmp_path, monkeypatch) -> None: | |
| code = "patched model code\n" | |
| weight = b"weights" | |
| (tmp_path / "modeling_unlimitedocr.py").write_text(code, encoding="utf-8") | |
| (tmp_path / "weight.bin").write_bytes(weight) | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_FILE", "weight.bin") | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_BYTES", len(weight)) | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_SHA256", hashlib.sha256(weight).hexdigest()) | |
| monkeypatch.setattr(model_store, "PATCHED_MODEL_CODE_SHA256", hashlib.sha256(code.encode()).hexdigest()) | |
| monkeypatch.setattr( | |
| model_store, | |
| "MODEL_PAYLOAD_SHA256", | |
| { | |
| "modeling_unlimitedocr.py": hashlib.sha256(code.encode()).hexdigest(), | |
| "weight.bin": hashlib.sha256(weight).hexdigest(), | |
| }, | |
| ) | |
| model_store._write_manifest(tmp_path) | |
| status = model_store.verify_model(tmp_path) | |
| assert status.prepared | |
| assert status.weight_sha256 == hashlib.sha256(weight).hexdigest() | |
| def test_verify_model_rejects_unexpected_file(tmp_path, monkeypatch) -> None: | |
| code = b"code" | |
| weight = b"weight" | |
| (tmp_path / "code.py").write_bytes(code) | |
| (tmp_path / "weight.bin").write_bytes(weight) | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_FILE", "weight.bin") | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_BYTES", len(weight)) | |
| monkeypatch.setattr( | |
| model_store, | |
| "MODEL_PAYLOAD_SHA256", | |
| {"code.py": hashlib.sha256(code).hexdigest(), "weight.bin": hashlib.sha256(weight).hexdigest()}, | |
| ) | |
| model_store._write_manifest(tmp_path) | |
| (tmp_path / "configuration_surprise.py").write_text("raise SystemExit", encoding="utf-8") | |
| with pytest.raises(ModelIntegrityError, match="unexpected"): | |
| model_store.verify_model(tmp_path) | |
| def test_verify_model_rejects_symlinked_payload(tmp_path, monkeypatch) -> None: | |
| target = tmp_path / "target" | |
| target.write_bytes(b"weight") | |
| (tmp_path / "weight.bin").symlink_to(target) | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_FILE", "weight.bin") | |
| monkeypatch.setattr(model_store, "MODEL_WEIGHT_BYTES", len(b"weight")) | |
| monkeypatch.setattr( | |
| model_store, | |
| "MODEL_PAYLOAD_SHA256", | |
| {"weight.bin": hashlib.sha256(b"weight").hexdigest(), "target": hashlib.sha256(b"weight").hexdigest()}, | |
| ) | |
| model_store._write_manifest(tmp_path) | |
| with pytest.raises(ModelIntegrityError, match="missing regular files"): | |
| model_store.verify_model(tmp_path) | |