Files
Untitled-Cat-Game/tests/test_persistence.py
2026-06-24 19:55:31 -04:00

75 lines
1.9 KiB
Python

import time
from untitled import content, migration, model, persistence, rules
def test_save_load_roundtrip(tmp_path):
original = model.Save(
version=content.SAVE_VERSION,
cat=model.Cat(
"Fry",
{
"size": "tiny",
"color": "tuxedo",
"eyes": "blue",
"personality": "judges you silently",
},
),
)
persistence.save(original, tmp_path)
loaded = persistence.load("Fry", tmp_path)
assert loaded.cat.name == "Fry"
assert loaded.cat.traits == {
"size": "tiny",
"color": "tuxedo",
"eyes": "blue",
"personality": "judges you silently",
}
assert loaded.version == content.SAVE_VERSION
def test_migration():
v1 = {
"version": 1,
"cat": {
"name": "Fry",
"traits": {
"size": "tiny",
"color": "tuxedo",
"eyes": "blue",
"personality": "judges you silently",
},
},
}
result = migration.migrate(v1)
assert result["version"] == 2
assert result["cat"]["fullness"] == 100
assert "last_updated" in result["cat"]
def test_decay_and_feed():
cat = model.Save(
version=content.SAVE_VERSION,
cat=model.Cat(
"Fry",
{
"size": "tiny",
"color": "tuxedo",
"eyes": "blue",
"personality": "judges you silently",
},
),
)
rules.reconcile(cat.cat, time.time() + 3600)
assert cat.cat.fullness < 98
rules.feed(cat.cat)
assert cat.cat.fullness > 98 and cat.cat.fullness <= 100
def test_list_saves(tmp_path):
open(tmp_path / "test.kitten", "w").close()
open(tmp_path / "test2.kitten", "w").close()
saves = persistence.list_saves(tmp_path)
assert "test" in saves
assert "test2" in saves