J'écris des cas de test pour mon application Django mais j'utilise un paquet de requêtes en Python pour accéder au code d'état, puis j'utilise l'instruction assert. Ce cas de test est réservé aux utilisateurs EFFECTIFS:Comment obtenir le code d'état en utilisant la bibliothèque de requêtes lors du test dans Django
class StaffClientServerTestCase(TestCase):
def test_login_staff(self):
User.objects.create_superuser('abc', '[email protected]', '1234')
self.client.login(username='abc', password='1234')
self.client.get('/dashboard/')
s = requests.get('http://localhost:8000/dashboard/')
print s.status_code
self.assertEqual(200, s.status_code)
utilisateurs du personnel Seuls ont accès au tableau de bord, donc je créé un objet utilisateur du personnel. La ligne suivante
self.client.login(username='abc', password='1234')
devient vraie. self.client.get('/dashboard/')
Si j'imprime cette ligne, il affiche le contenu html de la page ce qui signifie que mon personnel peut accéder au dashboard
. Mais quand j'utilise le module de demande pour voir le code d'état de dashboard
url il montre que status code = 500
, et mon test échoue.
s = requests.get('http://localhost:8000/dashboard/') print s.status_code
Quelqu'un pourrait-il me dire où je me trompe ici? Pourquoi mon code d'état sortira-t-il à 500, même si l'utilisateur du personnel peut accéder au tableau de bord et imprimer son contenu en utilisant print self.client.get('/dashboard/')
. Aidez-moi!
Vous devez soit spécifier les informations d'authentification pour 'requests.get' ou ne pas utiliser' requests.get' lors de vos tests et tester 'self.client' car vous vous connectez avec la méthode' self.client' et ' requests.get' est une autre chose, donc vous connecter avec 'self.client' ne signifie pas que vous serez authentifié par la suite pour faire autre chose avec une autre bibliothèque (comme' requests' ici). Réfléchissez bien à ce que vous êtes censé tester et tester. De plus, HTTP 500 n'est pas un bon code d'état si vous n'êtes pas authentifié, vous devez donc corriger votre tableau de bord. – dopstar
Une idée de comment obtenir le code de statut? Je dois tester par code d'état. – python
J'ai désactivé ma page d'administration, c'est pourquoi je reçois le code de statut 500. – python