Django:测试客户端的上下文在 shell 中为空

2024-05-18

我无法访问context的属性HttpResponse来自 ipython 的对象。但单元测试访问context.

这是单元测试。测试运行正常通过:

from django.test import Client, TestCase
from django.core import mail

class ClientTest(TestCase):
    def test_get_view(self):
        data = {'var': u'\xf2'}
        response = self.client.get('/test04/', data)

        # Check some response details
        self.assertContains(response, 'This is a test')
        self.assertEqual(response.context['var'], u'\xf2')

这是我在 shell 中使用的代码:

In [10]: from django.test import Client

In [11]: c = Client()

In [12]: r = c.get('/test04/', data)

In [13]: r.context

In [14]: type(r.context)
Out[14]: <type 'NoneType'>

response.contextshell 中没有,而response.context存在于单元测试中。

为什么HttpResponseshell 和单元测试之间的行为不一致?


您可以在 Django 测试代码中看到它在特殊仪器中进行了猴子补丁让模板渲染发送信号 http://code.djangoproject.com/browser/django/trunk/django/test/utils.py?rev=11917#L24,其中测试客户端聆听 http://code.djangoproject.com/browser/django/trunk/django/test/client.py?rev=11917#L224所以它可以使用渲染的模板及其上下文注释响应对象 http://code.djangoproject.com/browser/django/trunk/django/test/client.py?rev=11917#L254.

要附加此信号,您​​必须在 shell 会话中调用 django.test.utils.setup_test_environment() 函数(这有其他副作用),或者仅复制 Monkeypatch 模板渲染的行。不太难,但我同意如果可以重构这个特定的调试方面以使其更容易在测试之外使用,那就太好了。就我个人而言,我不介意这些信息是否总是在 DEBUG 为 True 时收集,而不仅仅是在测试时收集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:测试客户端的上下文在 shell 中为空 的相关文章

  • 基于连接表的 Django 过滤器

    我有两张桌子 class Client models Model name models TextField lastname models TextField class Meta managed False db table clien
  • Junit Mockito 测试一切

    我现在正在寻找更多时间但没有结果 请帮忙 这是我要测试的课程 public class DBSelectSchema extends Database private static final Logger LOG Logger getLo
  • Django 营业时间

    我想添加诊所的营业时间 我已经对此进行了调查在 Django 中实现 开放时间 的任何现有解决方案 https stackoverflow com questions 8128143 any existing solution to imp
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o
  • 模拟 DBSet,EF 模型优先

    正如标题所说 我遵循模型优先方法 所以我的模型类是自动生成的 如果我想嘲笑DBContext衍生的MyModelContainer其中包含DBSets实体类 阅读一些内容 为了进行单元测试 您需要将其更改为IDBSet 是否可以做到这一点
  • Pinax:自定义注册和个人资料

    我想在用户注册时收集更多信息 并将其显示为个人资料信息的一部分 以便用户在创建登录后可以对其进行编辑 如何在不直接更改 pinax 代码的情况下扩展注册和个人资料表单和模型 来自 松树docs http pinaxproject com d
  • Django 模板 - 我可以设置要在父模板中使用的变量吗?

    我有一个包含通用导航菜单的父模板 我希望能够添加class selected 到适当的菜单选项 我希望能够在子模板中设置变量 例如 set menu products and do ifequal menu products class s
  • 将 Django +1.10 与 MongoDB 连接

    在过去的几个月里 有人为 MongoDB 更换了 Django 1 10 中的默认数据库引擎吗 我在谷歌上得到的所有信息都是六四年前的 最常见的结果包括mongodb 引擎这需要Django nonrel 来自 Django 1 5 的一个
  • 如何在 Django 模板中显示站点的用户友好名称?

    我正在寻找一种在模板中显示我的 Django CMS 站点名称的方法 我创建了一个基本的 Django CMS 网站如下本指南 http docs django cms org en release 3 4 x introduction i
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 如何避免从模拟对象列表返回模拟

    我正在尝试模拟 责任驱动的设计 在对象需要服务来检索其他对象的情况下 我似乎无法避免从模拟返回模拟 一个例子是检查上个月的账单是否已支付的对象 它需要一个检索账单列表的服务 所以我需要在测试中模拟 billRetrievalService
  • Espresso - 检查使用按钮按下意图打开哪个活动?

    是否可以跟踪按下某个按钮后打开了哪个 Activity 我有一个测试 其中当单击 按下按钮时 it 向服务器发送请求 直到发送请求时 它打开一个活动 验证是否执行成功在测试中 我需要检查打开的 Activity 是什么 我的测试示例 检查
  • C# .NET 4.0 测试框架?

    如果我没记错的话 NUnit 是单元测试事实上的标准 但我刚刚下载了它 编写了一个简单的测试 然后显然我必须启动 GUI 并加载我的 exe组装 根本就失败了 我尝试编辑 C Program Files x86 NUnit 2 5 7 bi
  • Django:如何测试“HttpResponsePermanentRedirect”

    我正在为我的 django 应用程序编写一些测试 在我看来 它使用 HttpResponseRedirect 重定向到其他一些网址 那么我该如何测试呢 姜戈TestCase类有一个方法assertRedirects https docs d
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • Django NoReverseMatch

    我有以下设置 landing pages views py urls py In urls py当我尝试访问时 我有以下内容 competition from django conf urls defaults import from dj
  • 开玩笑 setTimeout 不暂停测试

    it has working hooks async gt setTimeout gt console log Why don t I run expect true toBe true 15000 我已经查看了这个答案 Jest 文档和几

随机推荐

  • 当覆盖设置为 null 时,通过外部单击关闭 fancybox

    我正在使用 fancybox 2 1 4 插件 它工作得很好 但我有一个问题 我想将覆盖设置为空 并且当用户单击 fancybox 容器外部 时关闭 fancybox 我已经尝试过以下代码 但它不起作用 因为没有可供单击的覆盖层 fancy
  • C# 中的空“if”语句是否会导致错误或警告?

    让我从一个现实生活中的例子开始 顾客 Alex 刚刚注意到 RemovalProcessor 第 138 行有一些奇怪的东西 if Session Handler ExecutePrefetchTasks null Session Exec
  • 找不到服务器路径时 Wakanda Studio 崩溃

    我最近将 Wakanda Server 和 Studio 从版本 10 更新到了 1 1 3 更新后 每次启动 wakanda 工作室时 我都会收到错误消息 在 Wakanda Studio 旁边找不到 Wakanda 服务器 为了让 wa
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 样式 ::-webkit-scrollbar-track 不起作用

    我正在尝试设置滚动条轨道的样式 每当我设计曲目时 div webkit scrollbar track background color blue 没有什么变化 每当我设置滚动条样式时 div webkit scrollbar backgr
  • 反向代理告诉后端 SSL 已使用的事实上的标准是什么?

    我有一个反向代理 它在外部执行 HTTPS 但在内部执行 HTTP 这意味着默认情况下应用内 URL 将以 HTTP 作为方案 因为这是联系它的方式 代理如何告诉后端应该使用 HTTPS 代理可以向其接收并传递到后端的请求添加额外 或覆盖
  • 如何在 Android TextView 中使用土耳其语字符,如“ş ç ı ö”?

    我想在 android TextView 中写入 ile 但它没有正确绘制 怎样才能使用这样的字符呢 例如 我将文本视图设置为 ile 它显示为 ile 我怎样才能解决这个问题 尝试以下方法 看看是否有帮助 source http grou
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 缺少常规选项卡

    我刚刚切换到使用 Xcode 5 我已经用一些需要更改的其他设置更改了我的应用程序的名称 但是当我执行此操作时 我注意到我的 常规 选项卡丢失了 有谁知道为什么会发生这种情况 只是快速更新如何在 Xcode 8 中执行此操作
  • 是否可以通过函数调用显示 qtip?

    我目前正在尝试创建一个文本选择脚本 以便人们可以标记文本 然后将其插入表单中 因此 我想显示一个带有 发送到表单 链接的弹出窗口 但我在使用 qtip 创建工具提示时遇到问题 我在我的网站上的任何地方都使用它 该脚本会找出文本是否已被标记
  • Electron:我们可以使用其唯一的 id 来访问 BrowserWindow 吗?

    假设多次调用以下函数来创建 BrowserWindow 例如 5 次 let mainWindow function createWindow use strict mainWindow new BrowserWindow height h
  • 如何对联合进行零初始化?

    考虑以下代码 struct T int a union struct int a s1 struct char b 1024 s2 int main T x T 由于调用了显式构造函数 因此上述代码最终将 x 中的所有数据成员进行零初始化
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • 如何使信号量超时

    Go 中的信号量是通过通道来实现的 一个例子是这样的 https sites google com site gopatterns concurrency semaphores https sites google com site gop
  • SocketException:主机查找失败:“...com”(操作系统错误:未提供节点名或服务名,或未知,errno = 8)

    我们面临的情况是 生产应用程序面临以下套接字异常 并且在此之后无法执行任何其他网络操作 DioError DioErrorType DEFAULT SocketException Failed host lookup xyz abc com
  • 删除 woocommerce 店面主页标题 php

    我正在使用 woocommerce 的店面主题 我需要用 php 删除主页标题 h1 我知道 css 解决方案 但我不想使用它 因为我想将 h1 添加到该页面的其他位置 并且在一个页面中包含 2 个 h1 对 seo 不利页 我也知道删除页
  • Django、模板、for 循环和循环

    tl 博士在底部 让我尝试解释一下我想要完成的任务 我有一个二维数组 我想以某种方式显示其内容 我想要 行 并且每行只能显示不超过三个 对象 因为缺乏更好的词 所以我想迭代该数组并在此过程中创建 HTML 我的想法是这样的 数组中的每个 三
  • 如何访问android库项目中的资源

    我正在构建一个 android 库项目 它内部需要一些静态资源 图像 xml 等 然后我想知道我可以把这些资源放在哪里以及如何访问它们 既然我把资源放到了assets文件夹 我使用 AssetManager 来访问资源 public cla
  • 什么是WINVER?

    我正在查看一些代码 他们有这一行 define WINVER 0x0501 in stdafx h文件 为什么需要定义WINVER 它如何影响您的代码 有人可以解释一下吗 WINVER 确定构建应用程序所需的最低平台 SDK 这反过来又会在
  • Django:测试客户端的上下文在 shell 中为空

    我无法访问context的属性HttpResponse来自 ipython 的对象 但单元测试访问context 这是单元测试 测试运行正常通过 from django test import Client TestCase from dj