/
alsoalgo
/
CTF
Обзор
Документация
Войти
/
alsoalgo
/
CTF
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/test_models.py
92 строки
3 KB
alsoalgo
some improvements
14 дек 2025, 22:23
14 дек 2025, 22:23
37d2ec0
Код
Авторство
О чём код?
""" Тесты для моделей данных """ import pytest from datetime import datetime from src.models.application import Application, ApplicationStatus class TestApplication: """Тесты для класса Application""" def test_application_creation(self): """Тест создания заявки""" app = Application( supplier="Test Supplier", off_taker="Test Buyer", amount=1000.0 ) assert app is not None assert app.supplier == "Test Supplier" assert app.off_taker == "Test Buyer" assert app.amount == 1000.0 assert app.status == ApplicationStatus.NEW assert app.application_id is not None def test_application_status_update(self): """Тест обновления статуса заявки""" app = Application() app.update_status(ApplicationStatus.IN_PROGRESS, "Started processing") assert app.status == ApplicationStatus.IN_PROGRESS assert len(app.history) > 0 assert app.history[-1]['action'] == 'status_changed' def test_application_add_document(self): """Тест добавления документа""" app = Application() app.add_document("test.pdf", "/path/to/test.pdf", "invoice") assert len(app.documents) == 1 assert app.documents[0]['name'] == "test.pdf" assert app.documents[0]['type'] == "invoice" assert len(app.history) > 0 def test_application_update_field(self): """Тест обновления поля заявки""" app = Application(supplier="Old Supplier") app.update_field("supplier", "New Supplier", source="contract.csv") assert app.supplier == "New Supplier" assert len(app.history) > 0 assert app.history[-1]['action'] == 'field_updated' def test_application_to_dict(self): """Тест преобразования заявки в словарь""" app = Application( supplier="Test Supplier", amount=1000.0 ) data = app.to_dict() assert isinstance(data, dict) assert data['supplier'] == "Test Supplier" assert data['amount'] == 1000.0 assert data['status'] == ApplicationStatus.NEW.value def test_application_from_dict(self): """Тест создания заявки из словаря""" data = { "application_id": "test-id", "status": "new", "supplier": "Test Supplier", "amount": 1000.0, "created_at": datetime.now().isoformat(), "updated_at": datetime.now().isoformat(), "documents": [], "metadata": {}, "history": [] } app = Application.from_dict(data) assert app.application_id == "test-id" assert app.supplier == "Test Supplier" assert app.amount == 1000.0 assert app.status == ApplicationStatus.NEW