У меня есть проект GAE/Django, и я пытаюсь сделать Enviroment работу функционально-тест с WebTest, макет проекта выглядит следующим образом:В противном случае функциональный тест на GAE, Джанго, WebTest
/gaeroot
/djangoroot
wsgi.py
urls.py
...
/anapp
urls.py
...
/tests
test_functional.py
wsgi.py (порожденный версии GAE о django-admin.py django1.5):
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoroot.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
test_functional.py:
import unittest
import webtest
from djangoroot.wsgi import application
class TestHomePage(unittest.TestCase):
def setUp(self):
self.testapp = webtest.TestApp(application)
def test_get_method_ok(self):
response = self.testapp.get('/path')
self.assertEqual(response.status_int, 200, response)
failin г тестовое сообщение:
Traceback (most recent call last):
...
line 14, in test_get_method_ok
self.assertEqual(response.status_int, 200, response)
AssertionError: Response: 301 MOVED PERMANENTLY
Content-Type: text/html; charset=utf-8
Location: http://localhost:80/path/
Почему бросает код перенаправления на тот же путь, единственное, что я могу думать о том, что какой-то код Джанго отвечает за перенаправление, потому что, как вы можете видеть из дерева каталогов I имеют двухуровневую конфигурацию URL.
С другой стороны, почему используется порт 80? когда я тестирую его в браузере, он показывает порт 8080, и он не должен использовать порт вообще с WebTest
, он не должен использовать порт вообще, так как он правильно тестирует интерфейс WSGI.
Верхний уровень urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^path/', include('djangoroot.anapp.urls')),
)
App уровень urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns('djangoroot.anapp.views',
url(r'^$', 'home', name='anapp_home'),
)
браузер показывает страницу Corret на том же URL, я взял WebTest пример из страниц поддержки Google, так проблема должна заключаться в объединении GAE/Django.
Заранее благодарю вас и дайте мне знать, если вам нужна дополнительная информация.
Aha! Трейлинг '/'. Спасибо! – ninjaPixel