我有一个测试我的URL的功能,如下所示:
def test_URLs(self):
routes = [
'about/',
'archive/',
'index/',
'admin/',
''
'doesntExist/'
]
for route in routes:
response = self.client.get(route)
self.assertEqual(response.status_code, 200)
和我的网址格式如下:
urlpatterns = patterns('',
#CMS url
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'core.views.index'),
url(r'^index/', 'core.views.index'),
url(r'about/', 'core.views.about'),
url(r'^archive/', 'core.views.archive'),
url(r'^talks/(?P<slug>[\w\-]+)/$', 'core.views.getTalk'),
在我的test_URLs函数中,路径'doesntExist /'不存在,而是恰当。当我运行我的服务器并尝试访问doesntExist/
时,我收到了日志消息
[04/Oct/2013 09:37:40] "GET /doesntExist/ HTTP/1.1" 404 2629
所以当我运行上述测试时,doesntExist/
肯定不存在:
Creating test database for alias 'default'...
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s
OK
为什么我的测试认为它存在?
答案 0 :(得分:0)
我的问题是我使用的是名为Lockdown的应用。状态代码返回为200,因为它获取了登录HTML表单,无论用户以前是否登录过该URL,都会显示该表单。
无论何时进行测试,都不要使用锁定。