Добавлены тесты защиты системного клиента и рефакторинг структуры тестов

- Создан новый класс SystemCustomerProtectionTestCase с 5 критичными тестами
- Тест создания системного клиента с правильными атрибутами
- Тест защиты от удаления системного клиента (ValidationError)
- Тест защиты email системного клиента от изменения
- Тест защиты флага is_system_customer от изменения
- Тест что обычные клиенты не затронуты защитой

- Исправлена логика в Customer.save(): проверка теперь использует original.is_system_customer
- Добавлен импорт ValidationError из django.core.exceptions

- Рефакторинг структуры тестов customers:
  - Разделены тесты по отдельным модулям в папке customers/tests/
  - test_search_strategies.py - тесты стратегий поиска
  - test_system_customer.py - тесты защиты системного клиента
  - test_wallet_balance.py - тесты баланса кошелька
  - test_wallet_service.py - тесты WalletService
  - test_wallet_model.py - тесты модели WalletTransaction

- Обновлён анализ тестов: 50 тестов (было 45), все проходят успешно
- Критичная функциональность POS системы теперь покрыта тестами
- Учтена tenant-система (используется TenantTestCase)
This commit is contained in:
2025-12-28 00:32:45 +03:00
parent b1855cc9f0
commit dbbac933af
9 changed files with 754 additions and 507 deletions

View File

@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
"""
Тесты для модуля customers.
Все тесты организованы по функциональным областям в отдельных модулях.
"""
from .test_search_strategies import DetermineSearchStrategyTestCase, IsQueryPhoneOnlyTestCase
from .test_wallet_balance import WalletBalanceCalculationTestCase
from .test_wallet_model import WalletTransactionModelTestCase
from .test_wallet_service import WalletServiceTestCase
from .test_system_customer import SystemCustomerProtectionTestCase
__all__ = [
# Тесты стратегий поиска клиентов
'DetermineSearchStrategyTestCase',
'IsQueryPhoneOnlyTestCase',
# Тесты баланса кошелька
'WalletBalanceCalculationTestCase',
# Тесты модели транзакций
'WalletTransactionModelTestCase',
# Тесты сервиса кошелька
'WalletServiceTestCase',
# Тесты защиты системного клиента
'SystemCustomerProtectionTestCase',
]