Вопрос №55423 от пользователя Denys Bondarenko в уроке «Тестирование ошибок», курс «Python: Продвинутое тестирование»

Denys Bondarenko

  1. screenshot так не работает

AttributeError: 'ExceptionInfo' object has no attribute 'message'

import pytest


def test_exception():
    # Добавляем: as e. e – произвольное имя переменной содержащей исключение
    with pytest.raises(Exception) as e:
        function_with_exception(0)

    assert e.message == 'expected message from exception'

python = "3.8" pytest = "5.2"

  1. и вопрос (давно интересно): как test_solution.py находит functions.py из другой директории from functions import get_function? Ведь в пакете явно нигде не прописан путь.
1 0

Станислав Дзисяк

Приветствую, Денис!

screenshot так не работает

Я поправил пример в теории. Должно было быть assert str(e.value) == 'expected message from exception'.

и вопрос (давно интересно): как test_solution.py находит functions.py из другой директории from functions import get_function?

Это возможно благодаря тому что при запуске тестов мы задаём значение переменной окружения PYTHONPATH=src. Так python знает, что пакеты нужно искать также в директории src где собственно и лежит модуль functions

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев