Pour certaines pages dans une application de flacon, je crée, j'ai un système de redirection HTTPS comme suit. Si vous ne demandez pas la version HTTPS de la page, il redirige vous à cela. Je veux écrire des tests d'unité pour ce service. J'ai écrit un qui veille à ce que vous soyez redirigé vers la version HTTPS (Vérifier un 301 ou A 301, fondamentalement). Je tiens à tester que si vous demandez la version HTTPS de la page et que vous êtes déjà sur https, cela ne vous redirige pas (fondamentalement, pour un 200). Comment obtenir la fiole d'envoyer une demande HTTPS dans le test de l'unité? P> p>
5 Réponses :
Avez-vous regardé Test de l'unité pour le flacon ?
Après votre code d'installation, Vous aurez quelque chose comme ceci p> Il semble que la meilleure voie à suivre consiste à créer un environnement WERKZEUG. Le flacon utilise le client de test Werkzeugn. Vous pouvez consulter l'API ici . Le QuickStart (qui est utile) est ici . P> vous ' Je vais voir que Werkzeug possède un environnement d'enveloppe avec une base_url. Peut-être qu'il est possible de jouer avec cela pour imiter un environnement HTTPS dans votre suite de test. P> P> update h3>
Ce n'est pas vraiment ce que je cherchais; Je l'ai clarifié juste maintenant. Je veux simuler une demande HTTPS dans un test unitaire.
J'ai mis à jour ma réponse. Je ne sais vraiment pas si Test Suites répondra à des tests HTTPS. Ce qui précède est mon meilleur coup pour trouver une solution.
J'utiliserais la bibliothèque de requêtes Python: http://docs.python-requests.org / fr / Dernières / p>
Très facile à faire des demandes HTTP avec elle. P>
J'ai essayé cela, mais je veux que les tests de l'unité fonctionnent sans moi exécuter un serveur HTTPS.
Avec la bibliothèque de demandes, vous pouvez ignorer SSL avec le drapeau de vérification.
requests.get('https://example.com', verify=False)
J'ai essayé cela, mais la question est que je dois avoir un serveur HTTPS fonctionnant (sur le port 483 ou quelque chose). Le flacon fournit-il des installations pour cela?
Vous pouvez forcer l'appel de l'essai de flacon () pour utiliser HTTPS comme ceci:
response = self.app.get('/login', base_url='https://localhost') assert(response.status_code == 200)
Bien que cela fonctionne, répondez Stackoverflow.com/a/63708394/9415337 est beaucoup mieux. Il permet moins de répétitions (entre différents tests d'unités) et il n'est pas nécessaire de corriger l'adresse de l'hôte.
Il y a une voie de fiole encore plus facile à faire, il suffit d'utiliser le paramètre Vous pouvez trouver la définition de la définition ici A >. Vous pouvez trouver les règles comment elle est utilisée en interne par le flacon ici . Vous pouvez également trouver comment son ici . p> préférérecred_url_scheme code> de configuration est égal à "https". p>
Avez-vous déjà compris cela?
@nu_evest C'était une longue, il y a longtemps, et je n'ai pas essayé la réponse de Belrogen car le projet était déjà terminé. IIRC Nous avons fini par obtenir un certificat HTTPS pour l'environnement de test et écrire un test manuel rapide ... pas idéal.