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

标签 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',

)

最佳答案

默认情况下,Django 使用http:// 协议(protocol)进行实时服务器测试,引用自 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:// 协议(protocol),所以某些东西正在将您的请求重定向到 https。检查你的MIDDLEWARE_CLASSES环境。

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

关于python - 如何在没有 HTTPS 的情况下运行 Django 1.6 LiveServerTestCase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918650/

相关文章:

python - 如何检查文件是否无异常存在?

python - 从 OLS 回归结果中读取 coef 值

python - 在忽略值的同时排序查询集

python - Django CMS 中缺少可以查看页面权限

linux - virtualenv安装linux错误

html - 省略协议(protocol)(方案)的绝对 URL 以保留当前页面之一

c# - 服务器违反了协议(protocol)。 Section=ResponseStatusLine(尝试了很多解决方案都没有用)

python - 加快随机加权选择的速度,而无需在python中进行替换

java - 是否可以找到如果. Elasticsearch 文档中的单个属性被修改

python - 如何从 SQL 查询中获取单个列并将其添加到 Python 列表中