使用 django 测试客户端发送 JSON

2023-12-28

我正在开发一个 django 项目,它将作为 webhook 的端点。 Webhook 会将一些 JSON 数据发布到我的端点,然后端点将解析该数据。我正在尝试为其编写单元测试,但我不确定是否正确发送了 JSON。

我在管道端点中不断收到“TypeError:字符串索引必须是整数”

这是代码:

# tests.py
from django.test import TestCase
from django.test.client import Client
import simplejson

class TestPipeline(TestCase):

    def setUp(self):
        """initialize the Django test client"""
        self.c = Client()

    def test_200(self):
        json_string = u'{"1": {"guid": "8a40135230f21bdb0130f21c255c0007", "portalId": 999, "email": "fake@email"}}'
        json_data = simplejson.loads(json_string)
        self.response = self.c.post('/pipeline-endpoint', json_data, content_type="application/json")
        self.assertEqual(self.response.status_code, "200")

and

# views.py
from pipeline.prospect import Prospect
import simplejson

def pipeline_endpoint(request):

    #get the data from the json object that came in
    prospects_json = simplejson.loads(request.raw_post_data)
    for p in prospects_json:
        prospect = {
            'email'          : p['email'],
            'hs_id'          : p['guid'],
            'portal'         : p['portalId'],
        }

编辑:整个回溯。

======================================================================
ERROR: test_200 (pipeline.tests.TestPipeline)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "F:\......\pipeline\tests.py", line 31, in test_200
    self.response = self.c.post('/pipeline-endpoint', json_string, content_type="application/json")
  File "C:\Python27\lib\site-packages\django\test\client.py", line 455, in post
    response = super(Client, self).post(path, data=data, content_type=content_type, **extra)
  File "C:\Python27\lib\site-packages\django\test\client.py", line 256, in post
    return self.request(**r)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "F:\......\pipeline\views.py", line 18, in pipeline_endpoint
    'email'          : p['email'],
TypeError: string indices must be integers

----------------------------------------------------------------------
Ran 1 test in 0.095s

FAILED (errors=1)
Destroying test database for alias 'default'...

@mrmagoey 是对的

def test_your_test(self):
    python_dict = {
        "1": {
            "guid": "8a40135230f21bdb0130f21c255c0007",
            "portalId": 999,
            "email": "fake@email"
        }
    }
    response = self.client.post('/pipeline-endpoint/',
                                json.dumps(python_dict),
                                content_type="application/json")

use json.dumps代替json.loads

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

使用 django 测试客户端发送 JSON 的相关文章

  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行
  • 如何将 JSON 文本转换为 PHP 关联数组

    我将以下 JSON 对象存储在文本文件 data txt 中 player black time 0 from 2c to 3d 我使用 php 阅读 问题 有没有简单的方法可以转换 data到 PHP 关联数组 我尝试过使用json de
  • Pinax:自定义注册和个人资料

    我想在用户注册时收集更多信息 并将其显示为个人资料信息的一部分 以便用户在创建登录后可以对其进行编辑 如何在不直接更改 pinax 代码的情况下扩展注册和个人资料表单和模型 来自 松树docs http pinaxproject com d
  • Spring boot:单元测试和配置文件

    我正在对休息控制器进行单元测试 这只是更大应用程序的一小部分 我的应用程序无法识别我的测试上下文 并且出现以下异常 java lang IllegalStateException 无法加载ApplicationContext 这是我的测试课
  • 如何将 Json 放入 asynctask - Android

    我有一个连接到数据库并返回结果的 json 函数 它会执行此操作大约 15 次或根据数据库中有多少条评论执行此操作 json 函数位于 while 循环内 并重复自身 直到从数据库中获取所有评论或达到 15 条评论 问题是当应用程序加载评论
  • django 根据 UserProfile.language() 字段数据发送本地化电子邮件

    在我的优惠网站中 如果优惠满足某些要求 模型中指定的过滤器 用户可以设置电子邮件警报 因此 当用户 A 添加报价时 post save 信号将发送到 celery 并检查是否应用了用户警报过滤器 如果有 则发送电子邮件 问题是我不知道如何安
  • 具有内联模型的 Django 管理页面加载速度非常慢

    我有一个带有单个内联模型的模型的 Django 管理页面 当内联模型有很多项目 例如 75 个 时 页面加载速度非常慢 大约 30 秒 即使我排除内联模型上的所有字段 让它只渲染名称 情况也是如此 删除内联模型会导致页面加载速度非常快 以秒
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • Rspec 控制器测试,传递 JSON 参数

    我试图实现以下目标 在 RSpec 控制器测试中创建 POST json 请求 并向其传递参数 这是我的代码 it returns access token do post login email bla password bla1 for
  • 如何避免从模拟对象列表返回模拟

    我正在尝试模拟 责任驱动的设计 在对象需要服务来检索其他对象的情况下 我似乎无法避免从模拟返回模拟 一个例子是检查上个月的账单是否已支付的对象 它需要一个检索账单列表的服务 所以我需要在测试中模拟 billRetrievalService
  • django 保护用户上传的文件

    如何允许用户将文件上传到他们自己的用户指定的文件夹 并且只能看到他们已上传的文件 我正在使用 django 文件传输 目前 它让我可以选择将媒体放入哪个文件 但我可以将其放入任何用户的文件中并查看每个用户的媒体 这是我的 uploads m
  • 将可区分的联合传递给 InlineData 属性

    我正在尝试对一个解析器进行单元测试 该解析器解析字符串并返回相应的抽象语法树 表示为可区分的联合 我认为使用 Xunit Extensions 属性会非常紧凑InlineData将所有测试用例堆叠在一起
  • 在 django vanilla CreateView 上设置当前用户

    我想用当前登录的用户更新我的模型 我正在使用 django vanilla views 为了存储新记录 我尝试使用 CreateView 我不想在表单上显示用户 只需自动更新即可 这是我的模型 class Measurement model
  • 在 postgresql 9.4 或 9.5 中查询 json 对象的嵌套数组中的元素

    studentID 1 StudentName jhon Data schoolname school1 enrolmentInfo year 2015 info courseID csc213 school IT enrollmentda
  • 气流:如何将读取 json 文件的方法放入本地库中

    我必须产生一些DAG 我已将 json 表架构文件保存在GCP铲斗 https cloud google com storage docs json api v1 buckets GCP 存储桶上的文件关联到composer将被重新映射到
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Enzyme - 测试嵌套组件是否正确呈现

    我正在尝试测试当通过简单的布尔值更新状态时 在父组件中其子组件是否正确呈现 在父组件下面 class Parent extends Component render const isReady this state const props
  • 在 django 查询集上使用 iterator()

    我最近遇到了一些奇怪的行为 需要检查我的理解 我在模型中使用一个简单的过滤器 然后迭代结果 e g allbooks Book objects filter author A A Milne for book in allbooks do

随机推荐

  • 导航控制器上的后退按钮位置

    我目前正在尝试为 iOS 应用程序开发自定义搜索 我已经设法让搜索控制器出现并且搜索栏正确显示 尽管我唯一的问题是我需要后退按钮出现在导航栏的右侧而不是左侧 请参见下文 正如你所看到的 后退按钮位于左侧 但我需要它位于右侧 https i
  • 使用 ssl 和客户端证书上传大文件 (uploadReadAheadSize) 但不希望预读所有数据

    我尝试搜索互联网 堆栈溢出 但找不到任何适合我的相关答案 我有一个 asp net web api2 应用程序 仅使用 ssl 我试图允许大文件上传 最多 36mb 但除非我将 uploadReadAheadSize 更改为预读此大小 否则
  • Pandas:用第二列中出现次数之间的 obs 计数填充一列

    假设我有以下 DataFrame 其中有一个 0 1 条目 具体取决于某个月份内是否发生 未发生某事 Y 0 0 1 1 0 0 0 0 1 1 1 X pd date range start 2010 freq MS periods le
  • 为什么 ErrorCollector 在声明时要求赋值?

    检查许多 XML 字符串时 我经常使用 ErrorCollector 构造 但我仍然不明白它是如何工作的 当我声明 ErrorCollector 时 我必须立即分配它 Rule public ErrorCollector collector
  • 如何判断内存是否对齐?

    我是使用 SSE SSE2 指令优化代码的新手 到目前为止我还没有走得太远 据我所知 常见的 SSE 优化函数如下所示 void sse func const float const ptr int len if ptr is aligne
  • Spring中使用@Valid验证表单不起作用

    我想验证我的表单 但这不起作用 我的实体类 import java io Serializable import java util Set import javax persistence Column import javax pers
  • 在 Dart 编程时如何为 VSCode 中的类型着色并添加样式

    在 Dart 中编程时 我想在 VSCode 中更改声明类型的颜色 并可能添加粗体 斜体和其他样式 这可能吗 我认为这将有助于可读性 例如 我希望 Widget BuildContext 和 Loading Container 采用不同的颜
  • 大 O 包含两个相乘的变量

    如果我采用该功能 def nested multiplier a b returns a b count 0 for i in range a for j in range b count 1 return count 这里相当清楚的是 就
  • 直接继承 Trait 失败,但代理有效

    为什么添加代理特征有效而直接继承失败 我在 github 上创建了一个可运行的项目 https github com leftofnull so inheritance 如果您克隆存储库并运行sbt console其次是com stacko
  • Docker 构建陷入 npm run 构建步骤

    我试图创建一个 docker 映像 但它卡在 npm run build 步骤中 我可以看到构建成功完成的消息 但它没有继续进行下一步 在 docker 文件下面 我使用节点 16 13 1 作为基础图像 RUN mkdir p usr s
  • Python3 从同级目录导入模块

    对于 python 3 10 项目中的新结构 我必须将不同的模块彼此分开 并将它们移动到同一层的不同文件夹中 文件夹结构看起来有点类似于 Root main py init py folder1 init py a py folder2 i
  • WPF自定义DatagridColumn绑定问题

    我试图为数据网格定义一个新的列模板 我可以在我的应用程序中重复使用它 但是当我尝试使用它时 我得到 System Windows Data 错误 2 找不到管理 FrameworkElement 或 FrameworkContentElem
  • 在外部 JavaScript 中使用 django 模板标签

    我在 html 页面中包含了一个 js 文件 例如 application js 但我无法在该 js 文件中使用 django 模板标签 有什么方法可以直接在外部 js 文件中使用 django 模板标签吗 前提是你会像模板一样解析 JS
  • JS setTimeout() 替代方案

    就像我解释的那样here http blog mlefree com 2016 02 settimeout alternative as happy new html 我不能再使用 window setTimeout 和任何窗口经典函数 如
  • 使用使用 Vue-CLI 创建的应用程序提供 404 页面

    我正在使用 Vue CLI 创建 Vue 应用程序 我不喜欢的一种行为是任何不存在的 URL 例如 localhost 8080 nonexistent file html 得到服务 代码为 200 就好像它是根一样 localhost 8
  • 更改 git merge 的相似性索引阈值并涉及重命名(例如 diff 上的 -M[n] --find-renames[=n] )

    我们有一些用于重命名检测启发式的配置选项diff log show and merge diff renameLimit执行复制 重命名检测时要考虑的文件数量 相当于 git diff 选项 l 差异重命名告诉 git 检测重命名 如果设置
  • 如何减少RadioButton绑定代码?

    我正在跟进这个答案关于如何将枚举 在我的例子中是整数 数据绑定到RadioButtons https stackoverflow com a 2908885 171121 但是如果我有几个 TabItems 每个 TabItems 都有 1
  • 如何在代码后面设置DataGrid行的背景颜色?

    我创建一个DataGrid我的代码后面的对象并设置内容obj ItemsSource 现在我想在后面的代码中设置特定行的背景颜色 我怎样才能实现这个目标 Update 我创建了DataGrid后面代码中的对象如下 var dataGrid
  • Java 归并排序

    我正在尝试创建一个合并排序方法 但它不断给出错误的排序 我在哪里可以更改以使其真正对数组进行排序 代码的哪一部分必须不同 感谢您的时间 public static void mergeSort int array int left int
  • 使用 django 测试客户端发送 JSON

    我正在开发一个 django 项目 它将作为 webhook 的端点 Webhook 会将一些 JSON 数据发布到我的端点 然后端点将解析该数据 我正在尝试为其编写单元测试 但我不确定是否正确发送了 JSON 我在管道端点中不断收到 Ty