Может быть, проще было бы смоделировать (или заглушку, или как там этот термин) urllib, или какой-либо другой модуль, который вы используете для связи с удаленным веб-сервисом?
Даже простого переопределения urllib.urlopen
может быть достаточно:
import urllib
from StringIO import StringIO
class mock_response(StringIO):
def info(self):
raise NotImplementedError("mocked urllib response has no info method")
def getinfo():
raise NotImplementedError("mocked urllib response has no getinfo method")
def urlopen(url):
if url == "http://example.com/api/something":
resp = mock_response("<xml></xml>")
return resp
else:
urllib.urlopen(url)
is_unittest = True
if is_unittest:
urllib.urlopen = urlopen
print urllib.urlopen("http://example.com/api/something").read()
Я использовал нечто очень похожее здесь , чтобы эмулировать простой API, прежде чем я получил ключ API.