/
megaokna43
/
courses_4
Обзор
Документация
Войти
/
megaokna43
/
courses_4
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/test_parser.py
66 строк
3 KB
megaokna43
проверил работу кода и тестов
14 дек 2024, 21:51
14 дек 2024, 21:51
dda6769
Код
Авторство
О чём код?
import pytest from unittest.mock import patch, MagicMock from src.parser import HH # Замените на фактический путь к вашему классу HH @pytest.fixture def hh_parser(): """Создаем экземпляр класса HH перед каждым тестом.""" return HH() def test_init(hh_parser): """Тестируем инициализацию класса HH.""" assert hh_parser._HH__url == 'https://api.hh.ru/vacancies' assert hh_parser._HH__headers == {'User-Agent': 'HH-User-Agent'} assert hh_parser._HH__params == {'text': '', 'page': 0, 'per_page': 100} @patch('requests.get') def test_load_vacancies_success(mock_get, hh_parser): """Тестируем метод load_vacancies на успешный запрос.""" # Настраиваем имитацию ответа от API mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = { 'items': [{'id': 1, 'name': 'Вакансия 1'}, {'id': 2, 'name': 'Вакансия 2'}] } mock_get.return_value = mock_response # Вызываем метод load_vacancies vacancies = hh_parser.load_vacancies('Программист', pages=1) # Проверяем, что запрос был выполнен mock_get.assert_called_once_with( hh_parser._HH__url, headers=hh_parser._HH__headers, params={'text': 'Программист', 'page': 0, 'per_page': 100} ) # Проверяем, что возвращенные вакансии соответствуют ожидаемым assert len(vacancies) == 2 assert vacancies[0]['name'] == 'Вакансия 1' assert vacancies[1]['name'] == 'Вакансия 2' @patch('requests.get') def test_load_vacancies_failure(mock_get, hh_parser): """Тестируем метод load_vacancies на неуспешный запрос.""" # Настраиваем имитацию ответа от API с ошибкой mock_response = MagicMock() mock_response.status_code = 404 mock_response.text = 'Not Found' mock_get.return_value = mock_response # Вызываем метод load_vacancies vacancies = hh_parser.load_vacancies('Программист', pages=1) # Проверяем, что запрос был выполнен mock_get.assert_called_once_with( hh_parser._HH__url, headers=hh_parser._HH__headers, params={'text': 'Программист', 'page': 0, 'per_page': 100} ) # Проверяем, что возвращенные вакансии пусты assert len(vacancies) == 0