48 lines
1.3 KiB
Python
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
|