Files
led-controller/tests/models/test_sequence.py
Jimmy cccda24448 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
2026-01-11 21:34:17 +13:00

63 lines
1.9 KiB
Python

from models.squence import Sequence
import os
def test_sequence():
"""Test Sequence model CRUD operations."""
# Clean up any existing test file
if os.path.exists("Sequence.json"):
os.remove("Sequence.json")
sequences = Sequence()
print("Testing create sequence")
sequence_id = sequences.create("test_group", ["preset1", "preset2"])
print(f"Created sequence with ID: {sequence_id}")
assert sequence_id is not None
assert sequence_id in sequences
print("\nTesting read sequence")
sequence = sequences.read(sequence_id)
print(f"Read: {sequence}")
assert sequence is not None
assert sequence["group_name"] == "test_group"
assert len(sequence["presets"]) == 2
assert "sequence_duration" in sequence
assert "sequence_loop" in sequence
print("\nTesting update sequence")
update_data = {
"group_name": "updated_group",
"presets": ["preset3", "preset4", "preset5"],
"sequence_duration": 5000,
"sequence_transition": 1000,
"sequence_loop": True,
"sequence_repeat_count": 3
}
result = sequences.update(sequence_id, update_data)
assert result is True
updated = sequences.read(sequence_id)
assert updated["group_name"] == "updated_group"
assert len(updated["presets"]) == 3
assert updated["sequence_duration"] == 5000
assert updated["sequence_loop"] is True
print("\nTesting list sequences")
sequence_list = sequences.list()
print(f"Sequence list: {sequence_list}")
assert sequence_id in sequence_list
print("\nTesting delete sequence")
deleted = sequences.delete(sequence_id)
assert deleted is True
assert sequence_id not in sequences
print("\nTesting read after delete")
sequence = sequences.read(sequence_id)
assert sequence is None
print("\nAll sequence tests passed!")
if __name__ == '__main__':
test_sequence()