Глядя на теги вопросов, я вижу, что вы хотите написать unit-тесты для этой функции. И где здесь ваша единица? Где ваша бизнес-логика? getproxies
и get
являются функциями стандартной библиотеки Python. Вы не должны проверять чужой код в своих юнит-тестах. Кроме того, этого достаточно, чтобы протестировать только вещей, которые могли бы сломаться .
Если я неправильно понял ваш вопрос и действительно ваша функция выглядит следующим образом:
def check_proxy():
import urllib
http_proxy = urllib.getproxies().get('http')
# some “complex” code that uses http_proxy
и вы не знаете, как проверить «сложный» код из-за зависимости от прокси-сервера, я рекомендую разделить функцию на две части:
def check_proxy():
import urllib
http_proxy = urllib.getproxies().get('http')
_check_proxy(http_proxy)
def _check_proxy(http_proxy):
# some “complex” code that uses http_proxy
Теперь вы можете протестировать _check_proxy
в одиночку, используя любой макет / заглушку, специально подготовленный для роли http_proxy
. Напишите несколько тестов для _check_proxy
и оставьте исходные check_proxy
непроверенными (в смысле unit -test). Это нормально.