Files
XCClaw/tests/test_storage.py

48 lines
1.3 KiB
Python

import pytest
from app.services.storage import JSONStorage
from pathlib import Path
class TestJSONStorage:
def test_save_and_load(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = {"name": "test", "value": 123}
storage.save("test", data)
loaded = storage.load("test")
assert loaded == data
def test_load_nonexistent(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
result = storage.load("nonexistent", default={"default": True})
assert result == {"default": True}
def test_save_list(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = [1, 2, 3, "test"]
storage.save("list", data)
loaded = storage.load("list")
assert loaded == data
def test_save_nested_data(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = {
"tasks": [
{"id": "1", "status": "completed"},
{"id": "2", "status": "running"}
]
}
storage.save("nested", data)
loaded = storage.load("nested")
assert loaded == data