food-market/tests/conftest.py
Claude c8b9f5048b Учёт закупки и перепродажи булок
Десктопное приложение на PySide6. Вся база — один JSON-документ,
зашифрованный AES-256-GCM под паролем (ключ через scrypt), лежит
в data/vault.fmdb и раз в час уезжает в этот репозиторий.

Основное:
- партии с дедлайном возврата себестоимости пекарне, FIFO-разнос продаж
  по партиям и прогресс покрытия к сроку;
- типы выбытия: розница, другу по себестоимости, съел сам, подарок,
  списание — съеденное вычитается из прибыли, за него платить всё равно;
- долги контрагентов с частичными оплатами;
- номенклатура с историей изменения цен;
- журнал изменений внутри базы: git хранит непрозрачные снимки,
  поэтому настоящая история ведётся здесь.

Синхронизация коммитит только путь базы и схлопывает часовые пуши
в один коммит на день через amend + force-with-lease.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 17:29:53 +03:00

32 lines
883 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from datetime import date, timedelta
import pytest
from app import journal
from app.storage import Vault
@pytest.fixture
def vault(tmp_path):
return Vault.create(tmp_path / "vault.fmdb", "pw")
@pytest.fixture
def buns(vault):
"""Три булки из примера пользователя, с фиксированными ценами поставщика."""
return {
"повидло": journal.create_product(vault, "Булка с повидлом", cost_price=30, retail_price=50),
"мак": journal.create_product(vault, "Булка с маком", cost_price=20, retail_price=35),
"корица": journal.create_product(vault, "Булка с корицей", cost_price=25, retail_price=40),
}
@pytest.fixture
def today():
return date.today()
@pytest.fixture
def in_two_weeks(today):
return today + timedelta(days=14)