如何在没有HTTPS的情况下运行Django 1.6 LiveServerTestCase?

时间:2014-07-23 18:55:25

标签: python django http testing https

我有一个Django 1.6项目,我正在尝试运行LiveServerTestCase。但是,我的测试用例不需要HTTPS,所以我想禁用它。有没有办法做到这一点?

我跑:

$ website/manage.py test website/tests.py:MySeleniumTests

并且Firefox打开指向:

https://localhost:8081/

我可以使用以下命令在端口8081上运行安全服务器:

$ website/manage.py runserver_plus --cert cert 0.0.0.0:8081

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'website.nucleus',
'website.blog',
'django_extensions',
'debug_toolbar',
'django_nose',
'django_coverage',
'tinymce',
'django_ztask',
'timezones',
'tracking',
'gunicorn',
'raven.contrib.django.raven_compat',
'social.apps.django_app.default',
'report_builder',
'bootstrapform',
'bootstrap3',

1 个答案:

答案 0 :(得分:1)

默认情况下,Django使用http://协议进行实时服务器测试,引自source code

class LiveServerTestCase(TransactionTestCase):
    static_handler = _StaticFilesHandler

    @property
    def live_server_url(self):
        return 'http://%s:%s' % (
            self.server_thread.host, self.server_thread.port)

由于您在测试中看到https://协议,因此有些内容会将您的请求重定向到https。检查您的MIDDLEWARE_CLASSES设置。

例如,django-ssl-redirect中间件可能是罪魁祸首。