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:
57
tests/models/test_tab.py
Normal file
57
tests/models/test_tab.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from models.tab import Tab
|
||||
import os
|
||||
|
||||
def test_tab():
|
||||
"""Test Tab model CRUD operations."""
|
||||
# Clean up any existing test file
|
||||
if os.path.exists("Tab.json"):
|
||||
os.remove("Tab.json")
|
||||
|
||||
tabs = Tab()
|
||||
|
||||
print("Testing create tab")
|
||||
tab_id = tabs.create("test_tab", ["1", "2", "3"], ["preset1", "preset2"])
|
||||
print(f"Created tab with ID: {tab_id}")
|
||||
assert tab_id is not None
|
||||
assert tab_id in tabs
|
||||
|
||||
print("\nTesting read tab")
|
||||
tab = tabs.read(tab_id)
|
||||
print(f"Read: {tab}")
|
||||
assert tab is not None
|
||||
assert tab["name"] == "test_tab"
|
||||
assert len(tab["names"]) == 3
|
||||
assert len(tab["presets"]) == 2
|
||||
|
||||
print("\nTesting update tab")
|
||||
update_data = {
|
||||
"name": "updated_tab",
|
||||
"names": ["4", "5"],
|
||||
"presets": ["preset3"]
|
||||
}
|
||||
result = tabs.update(tab_id, update_data)
|
||||
assert result is True
|
||||
updated = tabs.read(tab_id)
|
||||
assert updated["name"] == "updated_tab"
|
||||
assert len(updated["names"]) == 2
|
||||
assert len(updated["presets"]) == 1
|
||||
|
||||
print("\nTesting list tabs")
|
||||
tab_list = tabs.list()
|
||||
print(f"Tab list: {tab_list}")
|
||||
assert tab_id in tab_list
|
||||
|
||||
print("\nTesting delete tab")
|
||||
deleted = tabs.delete(tab_id)
|
||||
assert deleted is True
|
||||
assert tab_id not in tabs
|
||||
|
||||
print("\nTesting read after delete")
|
||||
tab = tabs.read(tab_id)
|
||||
assert tab is None
|
||||
|
||||
print("\nAll tab tests passed!")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_tab()
|
||||
Reference in New Issue
Block a user