Je ne peux pas accéder à l'attribut context
d'un objet HttpResponse
de ipython. Mais le test unitaire accède à context
.Django: Le contexte du client de test est vide à partir du shell
Voici le test unitaire. Le test passe correctement:
from django.test import Client, TestCase
from django.core import mail
class ClientTest(TestCase):
def test_get_view(self):
data = {'var': u'\xf2'}
response = self.client.get('/test04/', data)
# Check some response details
self.assertContains(response, 'This is a test')
self.assertEqual(response.context['var'], u'\xf2')
est le code ici que j'ai utilisé dans la coquille:
In [10]: from django.test import Client
In [11]: c = Client()
In [12]: r = c.get('/test04/', data)
In [13]: r.context
In [14]: type(r.context)
Out[14]: <type 'NoneType'>
response.context
est pas dans la coquille alors response.context
existe dans le test unitaire.
Pourquoi HttpResponse
se comporte-t-il de manière incohérente entre le test de coque et le test unitaire?
J'ai essayé cela moi-même et ni le contexte ni le modèle ne sont définis dans le shell Django. Je suppose que Client n'est pas destiné à être utilisé dans un shell interactif. Le lanceur de test fait de l'instrumentation avant d'exécuter des tests, qui ne seront pas déclenchés via shell. Voir 'django.test.testcases' – muhuk