- 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
62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
from models.group import Group
|
|
import os
|
|
|
|
def test_group():
|
|
"""Test Group model CRUD operations."""
|
|
# Clean up any existing test file
|
|
if os.path.exists("Group.json"):
|
|
os.remove("Group.json")
|
|
|
|
groups = Group()
|
|
|
|
print("Testing create group")
|
|
group_id = groups.create("test_group")
|
|
print(f"Created group with ID: {group_id}")
|
|
assert group_id is not None
|
|
assert group_id in groups
|
|
|
|
print("\nTesting read group")
|
|
group = groups.read(group_id)
|
|
print(f"Read: {group}")
|
|
assert group is not None
|
|
assert group["name"] == "test_group"
|
|
assert "devices" in group
|
|
assert "pattern" in group
|
|
assert "colors" in group
|
|
|
|
print("\nTesting update group")
|
|
update_data = {
|
|
"name": "updated_group",
|
|
"devices": ["device1", "device2"],
|
|
"pattern": "rainbow",
|
|
"colors": ["#FF0000", "#00FF00", "#0000FF"],
|
|
"brightness": 80,
|
|
"delay": 50
|
|
}
|
|
result = groups.update(group_id, update_data)
|
|
assert result is True
|
|
updated = groups.read(group_id)
|
|
assert updated["name"] == "updated_group"
|
|
assert len(updated["devices"]) == 2
|
|
assert updated["pattern"] == "rainbow"
|
|
|
|
print("\nTesting list groups")
|
|
group_list = groups.list()
|
|
print(f"Group list: {group_list}")
|
|
assert group_id in group_list
|
|
|
|
print("\nTesting delete group")
|
|
deleted = groups.delete(group_id)
|
|
assert deleted is True
|
|
assert group_id not in groups
|
|
|
|
print("\nTesting read after delete")
|
|
group = groups.read(group_id)
|
|
assert group is None
|
|
|
|
print("\nAll group tests passed!")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_group()
|