Add comprehensive model tests

- Add tests for all model CRUD operations
- Add test for base Model class
- Add test runner for all model tests
- Tests include cleanup and validation
This commit is contained in:
2026-01-11 21:34:17 +13:00
parent 5cca60d830
commit cccda24448
9 changed files with 469 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
from models.preset import Preset
import os
def test_preset():
"""Test Preset model CRUD operations."""
# Clean up any existing test file
if os.path.exists("Preset.json"):
os.remove("Preset.json")
presets = Preset()
print("Testing create preset")
preset_id = presets.create()
print(f"Created preset with ID: {preset_id}")
assert preset_id is not None
assert preset_id in presets
print("\nTesting read preset")
preset = presets.read(preset_id)
print(f"Read: {preset}")
assert preset is not None
assert preset["name"] == ""
assert preset["pattern"] == ""
print("\nTesting update preset")
update_data = {
"name": "test_preset",
"pattern": "on",
"colors": ["#FF0000", "#00FF00"],
"delay": 100,
"brightness": 127,
"n1": 10,
"n2": 20
}
result = presets.update(preset_id, update_data)
assert result is True
updated = presets.read(preset_id)
assert updated["name"] == "test_preset"
assert updated["pattern"] == "on"
assert updated["delay"] == 100
print("\nTesting list presets")
preset_list = presets.list()
print(f"Preset list: {preset_list}")
assert preset_id in preset_list
print("\nTesting delete preset")
deleted = presets.delete(preset_id)
assert deleted is True
assert preset_id not in presets
print("\nTesting read after delete")
preset = presets.read(preset_id)
assert preset is None
print("\nAll preset tests passed!")
if __name__ == '__main__':
test_preset()