Les tests de code qui nécessite une Fiole application ou un contexte de demande
Je suis working outside of request context
lorsque vous tentez d'accéder session
dans un test. Comment puis-je configurer un contexte lorsque je teste quelque chose qui nécessite un?
import unittest
from flask import Flask, session
app = Flask(__name__)
@app.route('/')
def hello_world():
t = Test()
hello = t.hello()
return hello
class Test:
def hello(self):
session['h'] = 'hello'
return session['h']
class MyUnitTest(unittest.TestCase):
def test_unit(self):
t = tests.Test()
t.hello()
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez faire une demande à votre application, utilisez la
test_client
.Si vous voulez tester du code qui utilise un contexte d'application (
current_app
,g
,url_for
), pousser unapp_context
.Si vous voulez le code de test qui utilise un contexte de demande (
request
,session
), de pousser untest_request_context
.De l'app et de la demande contextes peuvent aussi être poussé manuellement, ce qui est utile lors de l'utilisation de l'interprète.
En flacon de Script ou le nouveau Flacon cli pousser automatiquement une application de contexte lors de l'exécution de la
shell
commande.Flacon de Test
est utile bibliothèque qui contient des helpers pour les tests Flacon apps.app_app.test_request_context():
et n'a travaillé.