Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""Tests for the shared byte formatter (hermes_cli.sizefmt).
|
||||
|
||||
Consolidates six near-identical formatters (backup, checkpoints, doctor,
|
||||
update_cmd, context_references, curator_backup). The contract below locks
|
||||
the shared behavior, including the one deliberate change vs the old
|
||||
copies: a real TB tier (doctor/context_references/curator_backup
|
||||
previously rendered 1 TiB as '1024.0 GB').
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from hermes_cli.sizefmt import format_bytes
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"n,expected",
|
||||
[
|
||||
(0, "0 B"),
|
||||
(1, "1 B"),
|
||||
(512, "512 B"),
|
||||
(1023, "1023 B"),
|
||||
(1024, "1.0 KB"),
|
||||
(1536, "1.5 KB"),
|
||||
(1024**2, "1.0 MB"),
|
||||
(1234567, "1.2 MB"),
|
||||
(1024**3, "1.0 GB"),
|
||||
(1024**4, "1.0 TB"),
|
||||
(2 * 1024**4, "2.0 TB"),
|
||||
],
|
||||
)
|
||||
def test_format_bytes_tiers(n, expected):
|
||||
assert format_bytes(n) == expected
|
||||
|
||||
|
||||
def test_format_bytes_tb_tier_not_gb_overflow():
|
||||
"""The old doctor/context_references/curator_backup copies topped out at
|
||||
GB and rendered 1 TiB as '1024.0 GB' — the shared helper must not."""
|
||||
assert "TB" in format_bytes(1024**4)
|
||||
assert "1024" not in format_bytes(1024**4)
|
||||
|
||||
|
||||
def test_format_bytes_never_raises():
|
||||
"""Doctor's stats dict tolerates None in every field; the formatter must
|
||||
render (not raise) for None/garbage."""
|
||||
assert format_bytes(None) == "?"
|
||||
assert format_bytes("garbage") == "?"
|
||||
assert format_bytes("2048") == "2.0 KB" # numeric strings accepted
|
||||
|
||||
|
||||
def test_migrated_sites_render_through_the_shared_helper():
|
||||
"""Behavior contract for the aliased call sites: the module-local names
|
||||
must render byte-identically to the shared helper (how they delegate is
|
||||
an implementation detail — only the rendering is pinned)."""
|
||||
from hermes_cli.backup import _format_size as backup
|
||||
from hermes_cli.checkpoints import _fmt_bytes as checkpoints
|
||||
from hermes_cli.doctor import _human_bytes as doctor
|
||||
|
||||
for n in (0, 512, 2048, 1234567, 1024**3, 1024**4):
|
||||
expected = format_bytes(n)
|
||||
assert backup(n) == expected
|
||||
assert checkpoints(n) == expected
|
||||
assert doctor(n) == expected
|
||||
Reference in New Issue
Block a user