Django REST framework 单元测试

Django REST framework 单元测试

只是简单记录一下测试代码怎么写

环境

Win10
Python3.7
Django2.2

项目

参照官网 快速开始 写了一个 demo

测试

参照官网 测试
和 Django 的测试差不多

创建 tutorial/tests/tests.py

import json
from django.test import TestCase
from rest_framework import status
from rest_framework.test import APIClient

class LittleTestCase(TestCase):
    def setUp(self):
        self.click = APIClient()

    def test_users_post(self):
        # /users/ POST
        data = {
            "username": "tom",
            "email": "[email protected]"
        }
        response = self.client.post("/users/", data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        # /users/:id GET 地址
        response_content = json.loads(response.content)
        user_url = response_content["url"]

        # /users/:id GET 检查新增用户是否符合预期
        response = self.client.get(user_url)
        response_content = json.loads(response.content)
        self.assertEqual(response.status_code, 200)
        self.assertEqual("tom", response_content["username"])
        self.assertEqual("[email protected]", response_content["email"])

执行测试
python manage.py test

python manage.py test tests/

测试结果,执行一个测试成功
测试前创建测试数据库,测试完毕删除数据库

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.022s

OK
Destroying test database for alias 'default'...

原文地址:https://www.cnblogs.com/eoalfj/p/10825669.html

时间: 2024-10-22 12:47:25

Django REST framework 单元测试的相关文章

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable

django rest framework 入门

django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangopythonrest framework ************************************ 广告时间: 海淘导航网站推荐:海淘库:http://www.haitaocool.com/ 需要的请收藏哦 ************************************ 1.

Django rest framework 使用自定义认证方式

Django rest framework 使用自定义认证方式 Django使用自定义认证方式 介绍了 "Django使用自定义认证方式",这一篇说说怎样在前一篇的基础上提供rest api. 修改settings.py中INSTALLED_APPS,添加 'login' app. 给login app增加serializers.py文件 #coding:utf-8 from django.contrib.auth.models import User from rest_framew

Django REST framework 的TokenAuth认证及外键Serializer基本实现

一,Models.py中,ForeignKey记得要有related_name属性,已实现关联对象反向引用. app_name = models.ForeignKey("cmdb.App",related_name='deploy_app', verbose_name="App") 二,Settings.py文件中,加入对Django REST framework的基本设置. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSE

Python【第二十四课】Django rest framework

本节内容 Django rest framework 安装 Django rest framwwork 环境配置 简单举例说明 Django中使用 rest framework 1.1 安装 Django rest framework 建立新的环境 virtualenv env source env/bin/activate 安装 djangorestframework 模块 pip install django pip install djangorestframework pip insta

Django——REST framework

1. 什么是REST REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态

在 Django REST framework 善用 SerializerMethodField 来优化不必要的查询

在 Django REST framework 善用 SerializerMethodField 来优化不必要的查询 首先来看一个例子,在一般情况下,对于有父子关系的对象,我们使用下面的方法来创建类. 一个Article类,一个Article对象可以有多个Comment实例,那么Django中类的定义如下: #coding:utf-8 from django.db import models from django.contrib.auth.models import User class Ar

Django rest framework __str__ returned non-string (type NoneType)

Django rest framework __str__ returned non-string (type NoneType) 原创 2017年11月01日 20:49:13 转至:http://blog.csdn.net/jiangbo721/article/details/78418501 在刚开始设计 测试的时候容易出现这个错误 如果是这样的话就在admin后台把帐号退掉, 然后在进入对应页面就可以了,具体原因也不知道 感觉像是获取用户失败 ______________________

Django REST framework反向生成url

Django REST framework是一个基于Django的框架,REST framework又是怎么反向生成url的呢?? 在前面的例子中,知道在REST framework中有6种版本控制的方式,进入任意一种版本控制的源码中, class QueryParameterVersioning(BaseVersioning): """ GET /something/?version=0.1 HTTP/1.1 Host: example.com Accept: applic