2010-07-08 7 views
1

Lorsque vous utilisez wsgiref.util.setup_testing_defaults() pour configurer un WSGI environ est-il possible de définir la valeur wsgi.input pour pouvoir tester les requêtes HTTP POST?Existe-t-il un moyen de définir la valeur de wsgi.input lors du test?

Etude de la valeur créée par wsgi.inputsetup_testing_defaults() montre qu'il est un objet wsgi.validate.InputWrapper avec read, readline, readlines, input, close et __iter__ méthodes, mais pas écrire méthodes.

Edit:
Je travaille sur Python 2.6.1

+0

Quelle version de Python utilisez-vous? J'utilise Python 2.6.5, et 'wsgiref.util.setup_testing.defaults' crée une instance' StringIO' ordinaire dans le dictionnaire d'environnement. –

Répondre

3

Selon la spécification WSGI, le wsgi.input est juste un objet de type fichier. Donc, même si votre bibliothèque auxiliaire assigne un objet bizarre au environ['wsgi.input'], vous pouvez le remplacer par n'importe quel objet semblable à un fichier que vous voulez. En particulier, avec un objet StringIO:

e = {} 
setup_testing_defaults(e) 
s = urlencode({'q': 'is there a way to set the value of wsgi input'}) 
e['wsgi.input'] = StringIO(s)