58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
from models.zone import Zone
|
|
import os
|
|
|
|
|
|
def test_zone():
|
|
"""Test Zone model CRUD operations."""
|
|
if os.path.exists("Zone.json"):
|
|
os.remove("Zone.json")
|
|
|
|
zones = Zone()
|
|
|
|
print("Testing create zone")
|
|
zone_id = zones.create("test_zone", ["1", "2", "3"], ["preset1", "preset2"])
|
|
print(f"Created zone with ID: {zone_id}")
|
|
assert zone_id is not None
|
|
assert zone_id in zones
|
|
|
|
print("\nTesting read zone")
|
|
zone = zones.read(zone_id)
|
|
print(f"Read: {zone}")
|
|
assert zone is not None
|
|
assert zone["name"] == "test_zone"
|
|
assert len(zone["names"]) == 3
|
|
assert len(zone["presets"]) == 2
|
|
|
|
print("\nTesting update zone")
|
|
update_data = {
|
|
"name": "updated_zone",
|
|
"names": ["4", "5"],
|
|
"presets": ["preset3"],
|
|
}
|
|
result = zones.update(zone_id, update_data)
|
|
assert result is True
|
|
updated = zones.read(zone_id)
|
|
assert updated["name"] == "updated_zone"
|
|
assert len(updated["names"]) == 2
|
|
assert len(updated["presets"]) == 1
|
|
|
|
print("\nTesting list zones")
|
|
zone_list = zones.list()
|
|
print(f"Zone list: {zone_list}")
|
|
assert zone_id in zone_list
|
|
|
|
print("\nTesting delete zone")
|
|
deleted = zones.delete(zone_id)
|
|
assert deleted is True
|
|
assert zone_id not in zones
|
|
|
|
print("\nTesting read after delete")
|
|
zone = zones.read(zone_id)
|
|
assert zone is None
|
|
|
|
print("\nAll zone tests passed!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_zone()
|