У меня есть код, который я не могу понять, как unit test! Модуль извлекает содержимое из внешних XML-каналов (twitter, flickr, youtube и т.д.) С помощью urllib2. Вот для него некоторый псевдокод:
params = (url, urlencode(data),) if data else (url,)
req = Request(*params)
response = urlopen(req)
#check headers, content-length, etc...
#parse the response XML with lxml...
Моя первая мысль заключалась в том, чтобы раскрыть ответ и загрузить его для тестирования, но, видимо, объект ответа urllib является unserializable (он вызывает исключение).
Простое сохранение XML из тела ответа не является идеальным, потому что мой код также использует информацию заголовка. Он предназначен для работы с объектом-ответчиком.
И, конечно, полагаться на внешний источник данных в unit test - это ужасная идея.
Итак, как мне написать unit test для этого?