我在我的應用程序的一種方法中使用Python的requests庫。該方法的身體看起來是這樣的:Python請求從本地url獲取文件
def handle_remote_file(url, **kwargs):
response = requests.get(url, ...)
buff = StringIO.StringIO()
buff.write(response.content)
...
return True
我想編寫該方法的一些單元測試,但是,我想要做的是通過一個虛擬的本地URL,例如:
class RemoteTest(TestCase):
def setUp(self):
self.url = 'file:///tmp/dummy.txt'
def test_handle_remote_file(self):
self.assertTrue(handle_remote_file(self.url))
當我打電話requests.get與本地URL,我得到了KeyError異常下面例外:
requests.get('file:///tmp/dummy.txt')
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/packages/urllib3/poolmanager.pyc in connection_from_host(self, host, port, scheme)
76
77 # Make a fresh ConnectionPool of the desired type
78 pool_cls = pool_classes_by_scheme[scheme]
79 pool = pool_cls(host, port, **self.connection_pool_kw)
80
KeyError: 'file'
問題是我怎麼能通過一個本地的url到requests.get? PS:我編了上面的例子。它可能包含很多錯誤。
燦你使用本地純python web服務器? – zealotous 2012-04-12 13:39:46
是的。我在代碼中使用SimpleHTTPServer庫在一個新的線程中設置了一個本地web服務器,並使用它來處理遠程文件,然後按預期工作。 – ozgur 2012-04-20 10:44:45