Sto provando ad automatizzare le prove su 404 pagine utilizzando il framework di test di Django 1.4.Come testare 404 NOT FOUND con il framework di test di django?
Se si stampa 127.0.0.1:8000/something/really/weird/
nella barra degli indirizzi del browser con il server di sviluppo in esecuzione, vedo una pagina 404, con lo stato "404 NOT FOUND" corretto (come mostra firebug).
Ma se provo ad usare questo codice per il test:
from django.test import TestCase
class Sample404TestCase(TestCase):
def test_wrong_uri_returns_404(self):
response = self.client.get('something/really/weird/')
self.assertEqual(response.status_code, 404)
il test fallisce con questa uscita:
$./manage.py test main
Creating test database for alias 'default'...
.F
======================================================================
FAIL: test_wrong_uri_returns_404 (main.tests.Sample404TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File ".../main/tests.py", line 12, in test_wrong_uri_returns_404
self.assertEqual(response.status_code, 404)
*AssertionError: 200 != 404*
----------------------------------------------------------------------
Ran 2 tests in 0.031s
FAILED (failures=1)
Destroying test database for alias 'default'...
Sono seriamente sorpreso con ottenere 200 codice qui. Qualcuno ha idea sul perché questo sta accadendo?
aggiornamento:
qui sta urls.py: http://pastebin.com/DikAVa8T ed effettiva prova di difetto è:
def test_wrong_uri_returns_404(self):
response = self.client.get('/something/really/weird/')
self.assertEqual(response.status_code, 404)
tutto sta accadendo nel progetto https://github.com/gbezyuk/django-app-skeleton
come è la tua urls.py? Il rispondente di seguito è corretto sul "/" principale, ma anche in questo caso non si dovrebbe ottenere un 200 per un URL senza senso. – Nils
Ho aggiornato la descrizione della domanda. Il file esatto si trova qui: https://github.com/gbezyuk/django-app-skeleton/blob/master/main/urls.py – gbezyuk