Python demandes de récupérer un fichier à partir d'une url locale

Je suis à l'aide de Python les demandes bibliothèque dans une méthode de ma demande. Le corps de la méthode ressemble à ceci:

def handle_remote_file(url, **kwargs):
    response = requests.get(url, ...)
    buff = StringIO.StringIO()
    buff.write(response.content)
    ...
    return True

J'aimerais écrire des tests unitaires pour cette méthode, cependant, ce que je veux faire est de faire passer un faux local url de la forme:

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))

Quand je l'appelle demandes.obtenir avec une url locale, j'ai eu l' KeyError l'exception ci-dessous:

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'

La question est de savoir comment puis-je passer une url locale à demandes.obtenir?

PS: j'ai pris l'exemple ci-dessus. Il est possible qu'il contient de nombreuses erreurs.

  • Pouvez-vous utiliser pur local python serveur web?
InformationsquelleAutor ozgur | 2012-04-12