from __future__ import annotations
import json
import pytest
from mcp_server import server
@pytest.fixture()
def isolated_storage(tmp_path, monkeypatch):
data_file = tmp_path / "products.json"
data_file.write_text("[]", encoding="utf-8")
monkeypatch.setattr(server, "DATA_FILE", data_file)
return data_file
def test_add_product_and_get_statistics(isolated_storage):
added = server.add_product(
name="Мышка",
price=1500,
category="Электроника",
in_stock=True,
)
assert added["id"] == 1
assert added["name"] == "Мышка"
stats = server.get_statistics()
assert stats["count"] == 1
assert stats["average_price"] == 1500.0
stored = json.loads(isolated_storage.read_text(encoding="utf-8"))
assert stored[0]["name"] == "Мышка"
def test_get_product_not_found_raises_value_error(isolated_storage):
with pytest.raises(ValueError, match="not found"):
server.get_product(999)