python - Django - 使用站点框架进行单元测试

标签 python django unit-testing

我尝试使用站点框架运行单元测试。 这是测试函数:

def test_main(self):
  response = self.client.get('/')
  self.assertEqual(response.status_code, 200)

这是命令:

python2.7 manage.py test --settings=myproject.settings_01

但是我遇到了一个错误,因为测试函数不知道我想要测试哪个站点。 --settings 不起作用。

我该怎么说我想要测试SITE_ID=1

错误:

======================================================================
enter code here`ERROR: test_main (sport.tests.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/test/utils.py", line 216, in inner
    return test_func(*args, **kwargs)
  File "/home/torm/BookingSystem/sport/tests.py", line 12, in test_main
    response = self.client.get('/')
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 470, in get
    **extra)
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 286, in get
    return self.generic('GET', path, secure=secure, **r)
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 358, in generic
    return self.request(**r)
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 440, in request
    six.reraise(*exc_info)
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 130, in get_response
    % (callback.__module__, view_name))
ValueError: The view system.views.main_page didn't return an HttpResponse object. It returned None instead

主要功能:

def main_page(request):
    site = get_current_site(request)

    if site.name == 'sport':
        return sport.views.main_page(request)

最佳答案

我已经找到解决办法了。

我没有更改测试数据库中的站点名称。

def setUp(self):
    site = Site.objects.get(id=1)
    site.name = 'sport'
    site.save()

当我将此代码添加到测试类时,一切正常。

关于python - Django - 使用站点框架进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26827595/

相关文章:

unit-testing - Laravel PHPUnit 测试,seePageIs() 的奇怪行为

python - 我想在 C++ 中创建类似 python 字典的东西

python - 使用 Mechanize 导入 Cookie

python - 如何将多个参数传递给 sorted() 的方法 'key'?

django - 如何在 Django 中编写更好的模板标签

python - 用 Python 编写 Restish 单元测试

python - 根据用户在 Python 中所说的内容更改问题数量

python - 使用带有 Sentiment140 API 的 Urllib 将 Curl 转换为 Python

django - 在 django-registration 中使用电子邮件作为用户名

python - 我将如何对这样的代码进行单元测试?