/
gr.ev.vl
/
TestGen
Обзор
Документация
Войти
/
gr.ev.vl
/
TestGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/src/testgen/core/utils/validators.py
55 строк
2 KB
gr.ev.vl
Initial commit
06 июн 2026, 02:41
06 июн 2026, 02:41
02fb1fb
Код
Авторство
О чём код?
""" Валидаторы данных. """ import re from uuid import UUID def validate_email(email: str) -> bool: """Проверяет корректность email.""" pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" return bool(re.match(pattern, email)) def validate_password_strength(password: str) -> tuple[bool, str | None]: """ Проверяет сложность пароля. Требования: - Минимум 8 символов - Хотя бы одна заглавная буква - Хотя бы одна строчная буква - Хотя бы одна цифра - Хотя бы один спецсимвол """ if len(password) < 8: return False, "Пароль должен быть не менее 8 символов" if not re.search(r"[A-Z]", password): return False, "Пароль должен содержать хотя бы одну заглавную букву" if not re.search(r"[a-z]", password): return False, "Пароль должен содержать хотя бы одну строчную букву" if not re.search(r"\d", password): return False, "Пароль должен содержать хотя бы одну цифру" if not re.search(r"[!@#$%^&*(),.?\":{}|<>]", password): return False, "Пароль должен содержать хотя бы один спецсимвол" return True, None def validate_uuid(value: str) -> bool: """Проверяет, является ли строка валидным UUID.""" try: UUID(value) return True except ValueError: return False def validate_question_count(count: int) -> bool: """Проверяет, что количество вопросов в допустимом диапазоне.""" return 1 <= count <= 20 def validate_misconception_count(count: int) -> bool: """Проверяет, что количество заблуждений в допустимом диапазоне.""" return 5 <= count <= 30