Django 1.4 のテスト フレームワークを使用して 404 ページのテストを自動化しようとしています。
開発サーバーが実行されている状態でブラウザーのアドレスバーに印刷127.0.0.1:8000/something/really/weird/
すると、正しい「404 NOT FOUND」ステータスの 404 ページが表示されます (firebug が示すように)。
しかし、このコードをテストに使用しようとすると:
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)
テストは次の出力で失敗します。
$./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'...
ここで 200 のコードを取得できたことに、私は非常に驚いています。なぜ地球上でこれが起こっているのか、誰にも分かりますか?
更新しました:
ここに urls.py があります: http://pastebin.com/DikAVa8T で、実際に失敗したテストは次のとおりです。
def test_wrong_uri_returns_404(self):
response = self.client.get('/something/really/weird/')
self.assertEqual(response.status_code, 404)
プロジェクトhttps://github.com/gbezyuk/django-app-skeletonですべてが起こっています