Files
led-controller/tests/models/test_profile.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

59 lines
1.7 KiB
Python

from models.profile import Profile
import os
def test_profile():
"""Test Profile model CRUD operations."""
# Clean up any existing test file
if os.path.exists("Profile.json"):
os.remove("Profile.json")
profiles = Profile()
print("Testing create profile")
profile_id = profiles.create("test_profile")
print(f"Created profile with ID: {profile_id}")
assert profile_id is not None
assert profile_id in profiles
print("\nTesting read profile")
profile = profiles.read(profile_id)
print(f"Read: {profile}")
assert profile is not None
assert profile["name"] == "test_profile"
assert "tabs" in profile
assert "palette" in profile
assert "tab_order" in profile
print("\nTesting update profile")
update_data = {
"name": "updated_profile",
"tabs": {"tab1": {"names": ["1"], "presets": []}},
"palette": ["#FF0000", "#00FF00"],
"tab_order": ["tab1"]
}
result = profiles.update(profile_id, update_data)
assert result is True
updated = profiles.read(profile_id)
assert updated["name"] == "updated_profile"
assert "tab1" in updated["tabs"]
print("\nTesting list profiles")
profile_list = profiles.list()
print(f"Profile list: {profile_list}")
assert profile_id in profile_list
print("\nTesting delete profile")
deleted = profiles.delete(profile_id)
assert deleted is True
assert profile_id not in profiles
print("\nTesting read after delete")
profile = profiles.read(profile_id)
assert profile is None
print("\nAll profile tests passed!")
if __name__ == '__main__':
test_profile()