File size: 1,715 Bytes
2abcc30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from local_train.check import check_metadata, sha256_file
from local_train.constants import METADATA_FILES
from local_train.duel import go_nogo
from local_train.export import _copy_genesis_metadata, _strip_disallowed


def test_copy_genesis_metadata_is_byte_identical(tmp_path):
    genesis = tmp_path / "genesis"
    dest = tmp_path / "out"
    genesis.mkdir()
    dest.mkdir()
    for name in METADATA_FILES:
        (genesis / name).write_bytes(f"{name}-bytes\n".encode())
    (dest / "tokenizer.json").write_text("{}\n")  # would fail if we reserialize
    _copy_genesis_metadata(genesis, dest)
    for name in METADATA_FILES:
        assert sha256_file(dest / name) == sha256_file(genesis / name)
    report = check_metadata(dest, genesis)
    assert report["ok"]


def test_strip_removes_hf_extras(tmp_path):
    (tmp_path / "config.json").write_text("{}")
    (tmp_path / "special_tokens_map.json").write_text("{}")
    (tmp_path / "merges.txt").write_text("a")
    (tmp_path / "modeling.py").write_text("x")
    (tmp_path / "model-00001-of-00002.safetensors").write_bytes(b"x")
    removed = _strip_disallowed(tmp_path)
    names = {p.name for p in tmp_path.iterdir()}
    assert "special_tokens_map.json" in removed
    assert "merges.txt" in removed
    assert "modeling.py" in removed
    assert "model-00001-of-00002.safetensors" in names


def test_go_nogo_rejects_zero_submit():
    report = go_nogo(
        {
            "run_id": "x",
            "sample_count": 8,
            "challenger_gate_pass_rate": 1.0,
            "score_challenger": 0.80,
            "score_king": 0.66,
        }
    )
    assert report["go"] is False
    assert any("submit" in reason for reason in report["reasons"])