首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django,wsgi_intercept和behave

django,wsgi_intercept和behave
EN

Stack Overflow用户
提问于 2015-02-12 22:21:40
回答 1查看 350关注 0票数 0

嗨,我正在尝试在我的django python应用程序中实现behave测试框架。然而,不确定是什么问题,我不断得到连接被拒绝。

以下是feature/environment.py ment.py的内容:

代码语言:javascript
复制
import os
import django
import urlparse
os.environ['DJANGO_SETTINGS_MODULE'] = 'tilesproj.settings'
django.setup()


def before_all(context):
    from django.test.runner import DiscoverRunner
    context.runner = DiscoverRunner()
    import wsgi_intercept
    from django.core.handlers.wsgi import WSGIHandler
    host = context.host = 'localhost'
    port = context.port = 8000
    from django.core.wsgi import get_wsgi_application
    from wsgiref.simple_server import make_server
    application = get_wsgi_application()
    wsgi_intercept.add_wsgi_intercept(host, port, lambda: application)
    import mechanize
    context.browser = mechanize.Browser()

    def browser_url(url):
        return urlparse.urljoin('http://%s:%d/' % (host, port), url)

    context.browser_url = browser_url

    from BeautifulSoup import BeautifulSoup
    def parse_soup():
        r = context.browser.response()
        html = r.read()
        r.seek(0)
        return BeautifulSoup(html)

    context.parse_soup = parse_soup


def before_scenario(context, scenario):
    context.runner.setup_test_environment()
    context.old_db_config = context.runner.setup_databases()


def after_scenario(context, scenario):
    context.runner.teardown_databases(context.old_db_config)
    context.runner.teardown_test_environment()

我正在尝试弄清楚如何在运行行为脚本时引导我的django应用程序,以便测试我的web应用程序。

EN

回答 1

Stack Overflow用户

发布于 2015-02-12 22:43:51

你应该试一下网站上的example Django Behave configuration。从本质上讲,你使用一个假浏览器来执行请求,而这些请求实际上并不是通过一个真正的网站。您的连接被拒绝,因为没有可连接的真实服务器。

因此,您应该从wsgi_intercept获得机械化浏览器,而不是直接从机械化获得:

代码语言:javascript
复制
### Set up the Mechanize browser.
from wsgi_intercept import mechanize_intercept
# MAGIC: All requests made by this monkeypatched browser to the magic
# host and port will be intercepted by wsgi_intercept via a
# fake socket and routed to Django's WSGI interface.
browser = context.browser = mechanize_intercept.Browser()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28479857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档