/
TurGG
/
AI-Assistant
Обзор
Документация
Войти
/
TurGG
/
AI-Assistant
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_tools.py
278 строк
10 KB
molodoybishkek
Первая загрузка кода ИИ-агента.
03 мар 2026, 22:10
03 мар 2026, 22:10
15b5eb5
Код
Авторство
О чём код?
# =========================================================== # tests/test_tools.py — Тесты инструментов агента # =========================================================== import pytest from tools import ( get_top_n, get_team_ranking, get_user_details, search_user, get_progress_summary, compare_with_leader, get_all_achievements_func, get_team_progress, get_worst_test_takers_func, get_non_attendees_func, get_pending_achievements_func, get_team_leads_func, get_users_by_stage_func, ) class TestGetTopN: """Тесты функции get_top_n.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_top_n(3) assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_top_n(3) assert "ИНДИВИДУАЛЬНЫЙ РЕЙТИНГ" in result def test_contains_positions(self): """Должна содержать позиции в рейтинге.""" result = get_top_n(3) assert "1." in result assert "2." in result assert "3." in result def test_invalid_n_negative(self): """Должна возвращать ошибку при отрицательном N.""" result = get_top_n(-5) assert "ОШИБКА" in result def test_invalid_n_zero(self): """Должна возвращать ошибку при N=0.""" result = get_top_n(0) assert "ОШИБКА" in result def test_invalid_n_string(self): """Должна возвращать ошибку при строке вместо N.""" result = get_top_n("abc") assert "ОШИБКА" in result class TestGetTeamRanking: """Тесты функции get_team_ranking.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_team_ranking() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_team_ranking() assert "РЕЙТИНГ КОМАНД" in result class TestGetUserDetails: """Тесты функции get_user_details.""" def test_existing_user(self): """Должна возвращать досье для существующего пользователя.""" result = get_user_details(1) assert "ДОСЬЕ" in result assert "Eleven" in result def test_non_existing_user(self): """Должна сообщать об отсутствии пользователя.""" result = get_user_details(999) assert "не найден" in result.lower() def test_contains_sections(self): """Должна содержать разделы.""" result = get_user_details(1) assert "ТЕСТЫ" in result assert "ПРОЕКТЫ" in result assert "СОБЫТИЯ" in result class TestSearchUser: """Тесты функции search_user.""" def test_found_user(self): """Должна находить пользователя по имени.""" result = search_user("Steve") assert "НАЙДЕНО" in result assert "Steve" in result def test_not_found(self): """Должна сообщать об отсутствии результатов.""" result = search_user("НесуществующийПерсонаж") assert "не найден" in result.lower() def test_empty_query(self): """Должна возвращать ошибку при пустом запросе.""" result = search_user("") assert "ОШИБКА" in result class TestGetProgressSummary: """Тесты функции get_progress_summary.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_progress_summary() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_progress_summary() assert "СТАТУС ПРОГРАММЫ" in result def test_contains_stats(self): """Должна содержать статистику.""" result = get_progress_summary() assert "Участников:" in result assert "Команд:" in result assert "Всего баллов:" in result class TestCompareWithLeader: """Тесты функции compare_with_leader.""" def test_returns_string(self): """Должна возвращать строку.""" result = compare_with_leader(1) assert isinstance(result, str) def test_contains_comparison(self): """Должна содержать сравнение.""" result = compare_with_leader(1) assert "СРАВНЕНИЕ С ЛИДЕРОМ" in result def test_non_existing_user(self): """Должна сообщать об отсутствии пользователя.""" result = compare_with_leader(999) assert "не найден" in result.lower() class TestGetAllAchievements: """Тесты функции get_all_achievements_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_all_achievements_func() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_all_achievements_func() assert "ВСЕ ДОСТИЖЕНИЯ" in result class TestGetTeamProgress: """Тесты функции get_team_progress.""" def test_existing_team(self): """Должна возвращать прогресс для существующей команды.""" result = get_team_progress("The Party") assert "ПРОГРЕСС" in result assert "The Party" in result def test_non_existing_team(self): """Должна сообщать об отсутствии команды.""" result = get_team_progress("НесуществующаяКоманда") assert "не найдена" in result.lower() def test_contains_sections(self): """Должна содержать разделы.""" result = get_team_progress("The Party") assert "ТЕСТЫ" in result assert "ПРОЕКТЫ" in result assert "СОБЫТИЯ" in result # =========================================================== # НОВЫЕ ТЕСТЫ ДЛЯ ИНСТРУМЕНТОВ АДМИНИСТРАТОРА # =========================================================== class TestGetWorstTestTakers: """Тесты функции get_worst_test_takers_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_worst_test_takers_func(3) assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_worst_test_takers_func(3) assert "АНАЛИЗ ОТСТАЮЩИХ" in result def test_invalid_limit(self): """Должна возвращать ошибку при некорректном limit.""" result = get_worst_test_takers_func(-5) assert "ОШИБКА" in result class TestGetNonAttendees: """Тесты функции get_non_attendees_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_non_attendees_func() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_non_attendees_func() assert "АНАЛИЗ ПОСЕЩАЕМОСТИ" in result class TestGetPendingAchievements: """Тесты функции get_pending_achievements_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_pending_achievements_func() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_pending_achievements_func() assert "ДОСТИЖЕНИЯ НА ПРОВЕРКЕ" in result or "Нет достижений" in result class TestGetTeamLeads: """Тесты функции get_team_leads_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_team_leads_func() assert isinstance(result, str) def test_contains_header(self): """Должна содержать заголовок.""" result = get_team_leads_func() assert "ТИМЛИДЫ" in result def test_filter_by_team(self): """Должна фильтровать по команде.""" result = get_team_leads_func("The Party") assert "The Party" in result or "ТИМЛИДЫ" in result class TestGetUsersByStage: """Тесты функции get_users_by_stage_func.""" def test_returns_string(self): """Должна возвращать строку.""" result = get_users_by_stage_func("тестирование") assert isinstance(result, str) def test_invalid_stage(self): """Должна возвращать сообщение для некорректной стадии.""" result = get_users_by_stage_func("некорректная_стадия") assert isinstance(result, str) def test_valid_stage(self): """Должна возвращать результат для валидной стадии.""" result = get_users_by_stage_func("анализ и синтез") assert isinstance(result, str) assert "ПРОЕКТЫ НА СТАДИИ" in result or "Нет пользователей" in result