Python'un requests kitaplığımı uygulamamın bir yönteminde kullanıyorum. Yöntemin vücut gibidir:Python istekleri yerel bir URL'den bir dosya getir
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))
: Ben ne yapmak istiyorum gibi sahte yerel url geçmektir Ancak bu yöntem için bazı birim testleri yazmak istiyorum
def handle_remote_file(url, **kwargs):
response = requests.get(url, ...)
buff = StringIO.StringIO()
buff.write(response.content)
...
return True
yerel bir uRL'ye sahip requests.get diyoruz , ben istisna aşağıda KeyError var:
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'
Soru, yerel bir URL'yi requests.get'a nasıl geçirebilirim?
Not: Yukarıdaki örneği oluşur. Muhtemelen birçok hata içerir.
Can yerel saf python web sunucusu kullanıyorsunuz? – zealotous
Evet.SimpleHTTPServer kitaplığını kullanarak yeni bir iş parçacığı ile kodun içinde yerel bir web sunucusu kurdum ve onunla birlikte uzak dosyalara hizmet ettim, sonra her şey beklendiği gibi çalıştı. – ozgur