/
Str1ke
/
TheProject
Обзор
Документация
Войти
/
Str1ke
/
TheProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_data_loader.py
84 строки
3 KB
AlekseyF7
Initial commit: Student Performance Analyzer project
26 дек 2025, 13:51
26 дек 2025, 13:51
84047cc
Код
Авторство
О чём код?
""" Тесты для модуля data_loader """ import pytest import pandas as pd import os import tempfile from src.data_loader import DataLoader class TestDataLoader: """Тесты для класса DataLoader""" def test_load_data_success(self): """Тест успешной загрузки данных""" loader = DataLoader("data/example_data.csv") data = loader.load_data() assert data is not None assert isinstance(data, pd.DataFrame) assert len(data) > 0 assert 'student_id' in data.columns assert 'subject' in data.columns assert 'score' in data.columns def test_load_data_file_not_found(self): """Тест обработки отсутствующего файла""" loader = DataLoader("data/nonexistent.csv") with pytest.raises(FileNotFoundError): loader.load_data() def test_load_data_empty_file(self): """Тест обработки пустого файла""" with tempfile.NamedTemporaryFile(mode='w', suffix='.csv', delete=False) as f: f.write("") temp_path = f.name try: loader = DataLoader(temp_path) with pytest.raises(ValueError): loader.load_data() finally: os.unlink(temp_path) def test_get_student_stats(self): """Тест получения статистики по студенту""" loader = DataLoader("data/example_data.csv") loader.load_data() stats = loader.get_student_stats("ST001") assert stats['student_id'] == "ST001" assert stats['total_subjects'] > 0 assert 'average_score' in stats assert 'max_score' in stats assert 'min_score' in stats assert isinstance(stats['subjects'], list) def test_get_student_stats_nonexistent(self): """Тест получения статистики для несуществующего студента""" loader = DataLoader("data/example_data.csv") loader.load_data() stats = loader.get_student_stats("ST999") assert stats['student_id'] == "ST999" assert stats['total_subjects'] == 0 assert stats['average_score'] == 0.0 def test_get_all_students_summary(self): """Тест получения сводки по всем студентам""" loader = DataLoader("data/example_data.csv") loader.load_data() summary = loader.get_all_students_summary() assert isinstance(summary, pd.DataFrame) assert len(summary) > 0 assert 'student_id' in summary.columns assert 'average_score' in summary.columns assert 'max_score' in summary.columns assert 'min_score' in summary.columns