fix: align cmd_compress dict keys with compression_stats() return values (#569)

* fix: align cmd_compress dict keys with compression_stats() return values

* test: align compress test mocks with actual compression_stats() keys

* fix: address review — add Total: assertion, move stats key test to test_dialect.py
This commit is contained in:
Arnold Wender
2026-04-12 01:16:31 +02:00
committed by GitHub
parent 9c4b7302cc
commit 89c0a58271
3 changed files with 30 additions and 12 deletions
+12 -8
View File
@@ -546,10 +546,11 @@ def test_cmd_compress_dry_run(mock_config_cls, capsys):
mock_dialect.compress.return_value = "compressed"
mock_dialect.compression_stats.return_value = {
"original_chars": 100,
"compressed_chars": 30,
"original_tokens": 25,
"compressed_tokens": 8,
"ratio": 3.3,
"summary_chars": 30,
"original_tokens_est": 25,
"summary_tokens_est": 8,
"size_ratio": 3.3,
"note": "Estimates only.",
}
mock_dialect_mod = _make_mock_dialect_module(mock_dialect)
@@ -564,6 +565,7 @@ def test_cmd_compress_dry_run(mock_config_cls, capsys):
out = capsys.readouterr().out
assert "dry run" in out.lower()
assert "Compressing" in out
assert "Total:" in out
@patch("mempalace.cli.MempalaceConfig")
@@ -619,10 +621,11 @@ def test_cmd_compress_stores_results(mock_config_cls, capsys):
mock_dialect.compress.return_value = "compressed"
mock_dialect.compression_stats.return_value = {
"original_chars": 100,
"compressed_chars": 30,
"original_tokens": 25,
"compressed_tokens": 8,
"ratio": 3.3,
"summary_chars": 30,
"original_tokens_est": 25,
"summary_tokens_est": 8,
"size_ratio": 3.3,
"note": "Estimates only.",
}
mock_dialect_mod = _make_mock_dialect_module(mock_dialect)
@@ -636,6 +639,7 @@ def test_cmd_compress_stores_results(mock_config_cls, capsys):
cmd_compress(args)
out = capsys.readouterr().out
assert "Stored" in out
assert "Total:" in out
mock_comp_col.upsert.assert_called_once()
+14
View File
@@ -115,6 +115,20 @@ class TestCompressionStats:
def test_count_tokens(self):
assert Dialect.count_tokens("hello world") == 2
def test_compression_stats_keys(self):
"""Verify compression_stats() returns the expected key set."""
d = Dialect()
stats = d.compression_stats("hello world this is a test", "HW:test")
expected_keys = {
"original_chars",
"summary_chars",
"original_tokens_est",
"summary_tokens_est",
"size_ratio",
"note",
}
assert set(stats.keys()) == expected_keys
class TestZettelEncoding:
def test_encode_zettel(self):