/
wonkxe
/
Contact_and_task
Обзор
Документация
Войти
/
wonkxe
/
Contact_and_task
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/tests/check_models.py
88 строк
3 KB
wonkxe
1
25 май 2026, 13:57
25 май 2026, 13:57
8620ad8
Код
Авторство
О чём код?
""" Тесты для проверки моделей и связей БД (Этап 1). """ import sys, os sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from src.Connection.connect import db from src.Models.user import User from src.Models.contact import Contact from src.Models.task import Task def run_tests(): print("Запуск тестов моделей и БД...") db.connect() db.create_tables([User, Contact, Task], safe=True) User.delete().execute() Contact.delete().execute() Task.delete().execute() passed, total = 0, 8 # 1. Создание пользователя user = User.create(login="testuser") user.set_password("pass123") user.save() if user.id > 0: print("[PASS] Тест 1: Пользователь создан") passed += 1 else: print("[FAIL] Тест 1") # 2. Проверка хеширования if user.check_password("pass123"): print("[PASS] Тест 2: Хеширование верно") passed += 1 else: print("[FAIL] Тест 2") # 3. Проверка неверного пароля if not user.check_password("wrong"): print("[PASS] Тест 3: Неверный пароль отклонен") passed += 1 else: print("[FAIL] Тест 3") # 4. Создание контакта contact = Contact.create(first_name="Иван", last_name="Петров", email="ivan@example.com", user=user) if contact.id > 0: print("[PASS] Тест 4: Контакт создан") passed += 1 else: print("[FAIL] Тест 4") # 5. Создание задачи import datetime task = Task.create(title="Позвонить клиенту", due_date=datetime.date.today(), contact=contact) if task.id > 0: print("[PASS] Тест 5: Задача создана") passed += 1 else: print("[FAIL] Тест 5") # 6. Связь задача->контакт if task.contact.id == contact.id: print("[PASS] Тест 6: Связь задача->контакт") passed += 1 else: print("[FAIL] Тест 6") # 7. Связь контакт->пользователь if contact.user.id == user.id: print("[PASS] Тест 7: Связь контакт->пользователь") passed += 1 else: print("[FAIL] Тест 7") # 8. Очистка task.delete_instance() contact.delete_instance() user.delete_instance() print("[PASS] Тест 8: Данные удалены") passed += 1 print(f"\nРезультат: {passed}/{total} тестов пройдено.") db.close() if __name__ == "__main__": run_tests()