zdppy_amauth如何测试给用户批量绑定角色接口

第一步:先实现新增用户的单元测试

import unittest
import reqclass TestUserAddRoles(unittest.TestCase):def assertApiSuccess(self, resp):"""断言API接口的响应是成功的"""self.assertEqual(200, resp.status_code)data = resp.json()self.assertEqual(10000, data["code"])self.assertEqual(True, data["status"])return data@classmethoddef setUpClass(cls):cls.base_url = "http://127.0.0.1:8888/auth"def test_user_add_roles(self):"""测试批量绑定角色"""# 1、添加用户target_url = f"{self.base_url}/user/register"username = "zhangdapeng1"data = {"username": username,"password": username,"re_password": username,}resp = req.post(target_url, json=data)self.assertApiSuccess(resp)# 2、添加3个角色# 3、获取用户idtarget_url = f"{self.base_url}/user"resp = req.get(target_url)data = self.assertApiSuccess(resp)users = data.get("data")self.assertTrue(isinstance(users, list))user_id = Nonefor user in users:if user.get("username") == username:user_id = user.get("id")breakself.assertIsNotNone(user_id)# 4、获取角色id# 5、给用户绑定两个角色# 6、获取用户已经绑定的所有角色# 7、删除用户target_url = f"{self.base_url}/user/{user_id}"resp = req.delete(target_url)self.assertApiSuccess(resp)# 8、删除角色# 9、批量解绑用户关联的所有角色

第二步:实现新增角色的单元测试

import unittest
import reqclass TestUserAddRoles(unittest.TestCase):def assertApiSuccess(self, resp):"""断言API接口的响应是成功的"""self.assertEqual(200, resp.status_code)data = resp.json()self.assertEqual(10000, data["code"])self.assertEqual(True, data["status"])return data@classmethoddef setUpClass(cls):cls.base_url = "http://127.0.0.1:8888/auth"def test_user_add_roles(self):"""测试批量绑定角色"""# 1、添加用户target_url = f"{self.base_url}/user/register"username = "zhangdapeng1"data = {"username": username,"password": username,"re_password": username,}resp = req.post(target_url, json=data)self.assertApiSuccess(resp)# 2、添加3个角色target_url = f"{self.base_url}/role"rolename1, rolename2, rolename3 = "testrole1", "testrole2", "testrole3"rolenames = (rolename1, rolename2, rolename3)for rolename in rolenames:data = {"name": rolename,"nickname": rolename,}resp = req.post(target_url, json=data)self.assertApiSuccess(resp)# 3、获取用户idtarget_url = f"{self.base_url}/user"resp = req.get(target_url)data = self.assertApiSuccess(resp)users = data.get("data")self.assertTrue(isinstance(users, list))user_id = Nonefor user in users:if user.get("username") == username:user_id = user.get("id")breakself.assertIsNotNone(user_id)# 4、获取角色idtarget_url = f"{self.base_url}/role"resp = req.get(target_url)data = self.assertApiSuccess(resp)roles = data.get("data")self.assertTrue(isinstance(roles, list))roleid1, roleid2, roleid3 = None, None, Nonefor role in roles:if role.get("name") == rolename1:roleid1 = role.get("id")elif role.get("name") == rolename2:roleid2 = role.get("id")elif role.get("name") == rolename3:roleid3 = role.get("id")self.assertIsNotNone(roleid1)self.assertIsNotNone(roleid2)self.assertIsNotNone(roleid3)# 5、给用户绑定两个角色# 6、获取用户已经绑定的所有角色# 7、删除用户target_url = f"{self.base_url}/user/{user_id}"resp = req.delete(target_url)self.assertApiSuccess(resp)# 8、删除角色roleids = [roleid1, roleid2, roleid3]for roleid in roleids:target_url = f"{self.base_url}/role/{roleid}"resp = req.delete(target_url)self.assertApiSuccess(resp)# 9、批量解绑用户关联的所有角色

第三步:测试批量绑定角色和解绑角色

import unittest
import reqclass TestUserAddRoles(unittest.TestCase):def assertApiSuccess(self, resp):"""断言API接口的响应是成功的"""self.assertEqual(200, resp.status_code)data = resp.json()self.assertEqual(10000, data["code"])self.assertEqual(True, data["status"])return data@classmethoddef setUpClass(cls):cls.base_url = "http://127.0.0.1:8888/auth"def test_user_add_roles(self):"""测试批量绑定角色"""# 1、添加用户target_url = f"{self.base_url}/user/register"username = "zhangdapeng1"data = {"username": username,"password": username,"re_password": username,}resp = req.post(target_url, json=data)self.assertApiSuccess(resp)# 2、添加3个角色target_url = f"{self.base_url}/role"rolename1, rolename2, rolename3 = "testrole1", "testrole2", "testrole3"rolenames = (rolename1, rolename2, rolename3)for rolename in rolenames:data = {"name": rolename,"nickname": rolename,}resp = req.post(target_url, json=data)self.assertApiSuccess(resp)# 3、获取用户idtarget_url = f"{self.base_url}/user"resp = req.get(target_url)data = self.assertApiSuccess(resp)users = data.get("data")self.assertTrue(isinstance(users, list))user_id = Nonefor user in users:if user.get("username") == username:user_id = user.get("id")breakself.assertIsNotNone(user_id)# 4、获取角色idtarget_url = f"{self.base_url}/role"resp = req.get(target_url)data = self.assertApiSuccess(resp)roles = data.get("data")self.assertTrue(isinstance(roles, list))roleid1, roleid2, roleid3 = None, None, Nonefor role in roles:if role.get("name") == rolename1:roleid1 = role.get("id")elif role.get("name") == rolename2:roleid2 = role.get("id")elif role.get("name") == rolename3:roleid3 = role.get("id")self.assertIsNotNone(roleid1)self.assertIsNotNone(roleid2)self.assertIsNotNone(roleid3)# 5、给用户绑定两个角色target_url = f"{self.base_url}/user/{user_id}/role"resp = req.post(target_url, json={"ids": [roleid1, roleid2]})self.assertApiSuccess(resp)# 6、获取用户已经绑定的所有角色target_url = f"{self.base_url}/user/{user_id}/role"resp = req.get(target_url)data = self.assertApiSuccess(resp)roles = data.get("data")self.assertTrue(isinstance(roles, list))self.assertTrue(len(roles) == 2)# 7、删除用户target_url = f"{self.base_url}/user/{user_id}"resp = req.delete(target_url)self.assertApiSuccess(resp)# 8、删除角色roleids = [roleid1, roleid2, roleid3]for roleid in roleids:target_url = f"{self.base_url}/role/{roleid}"resp = req.delete(target_url)self.assertApiSuccess(resp)# 9、批量解绑用户关联的所有角色target_url = f"{self.base_url}/user/{user_id}/role"resp = req.delete(target_url)self.assertApiSuccess(resp)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 主从库中,从库APPLIED为YES ,但是主库任然为NO

主库 从库 从库已经APPLIED但是主库为APPLIED, 主数据库和备用数据库之间的ARCH-RFS心跳Ping负责更新主数据库上v$archived_log的APPLICED列。 在主数据库上有一个指定的心跳ARCn进程来执行此Ping。如果此进程开始挂起,它将不再与远程RFS进程通信&#…

嵌入式系统软件开发环境_3.主要功能和典型产品

1.嵌入式系统软件开发环境的主要功能 由于嵌入式系统的软件开发通常采用的是交叉开发方式,因此其开发环境中的工具应支持这种交叉开发的特点。嵌入式系统软件开发环境的功能应覆盖嵌入式软件开发过程,即编码过程、编译过程、构建过程、下载过程、调式过程…

WEB自动化测试(selenium工具)框架、面试题

一、什么是web自动化测试 让程序员代替人为去验证web项目功能的过程 二、什么web项目适合自动化测试 1)需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本&…

扩散模型详细推导过程——编码与解码

符号表 符号含义 x ( i ) z 0 ( i ) \boldsymbol{x}^{(i)}\boldsymbol{z}_0^{(i)} x(i)z0(i)​第 i i i个训练数据,其为长度为 d d d的向量 z t ( i ) \boldsymbol{z}_t^{(i)} zt(i)​第 i i i个训练数据在第 t t t时刻的加噪版本 ϵ t ( i ) \boldsymbol{\epsilo…

蓝桥杯 经典算法题 找到给定字符串中的不同字符

题目: 在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下: 当传入的字符串为 aad 和 ad 时,结果为 a。 当传入的字符串为 aaabccdd 和 abdcacade 时&#xff…

并发控制技术

事物的隔离性实现主要依赖于多种并发控制技术,这些技术确保在并发执行的事物中,一个事物的操作不会被其他事物干扰。并发控制技术按照其对可能冲突的操作采取的不同策略可以分为乐观并发控制和悲观并发控制两大类。 基于封锁的并发控制 对于并发可能冲突的操作,比如读-写,…

单木:面试官超爱问的字符串,今天给它彻底讲透

本文已收录于:https://github.com/danmuking/all-in-one(持续更新) 前言 哈喽,大家好,我是 DanMu。今天这边文章,想和大家聊聊有关字符串的问题,字符串似乎很简单,但其实字符串几乎…

期货交易纪律20240620

文章目录 第一步、选品第二步、开仓纪律 — (2024年6月20号 新增二条开仓纪律)第三步、持仓 — (新增持仓纪律) 2024年6月20号,开始写期货交易的第二篇日记。 这三天做了一笔交易:交易的问题,在…

MySQL之复制(七)

复制 定制的复制方案 分离功能 许多应用都混合了在线事务处理(OLTP)和在线数据分析(OLAP)的查询。OLTP查询比较短并且是事务型的。OLAP查询则通常很大,也很慢,并且不要求绝对最新的数据。这两种查询给服务器带来的负担完全不同,因此它们需…

chatgpt: linux 下用纯c 编写一按钮,当按钮按下在一新窗口显示本机主目录下图片子目录中的1.jpg图片

tmd,这chatgpt太强大了。 从下面的c程序与python程序对比,纯c的ui编程也不是太复杂。 再说一次,要想学好编程必须要用上这个chatgpt工具。 在 Linux 环境下使用纯 C 语言编写一个按钮,当按钮按下时,在一个新窗口中显示本机主目…

嵌入式linux系统中UART子系统基本实现

今天主要给大家分享一下,如何使用linux系统中的UART帧结构。 第一:UART串口波形 先观察UART波形,是如何被准确识别成字符D,而不是其他的内容呢? 当两个设备需要通过UART协议进行通讯时,它们需要同时约定好以下内容: 每—位信号的时间长度T(波特率= 1/T) 帧结构中每—…

fastadmin多语言切换设置

fastadmin版本:1.4.0.20230711 以简体,繁体,英文为例 一,在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true, // 允许的语言列表allow_lang_list > [zh-cn, en,zh-tw], 二…

动态规划——达拉崩吧

1、题目链接 174. 地下城游戏 2、题目分析 假如说我们正向推状态转移方程,很难推出来,因为这道题有“加血”的说法,只能依靠后面的值判断前面所需要的血量,也就是说,如果正向的dp表示从起点出发,到达&…

【人工智能,机器学习,统计学习,科学表征】开源商用与研发合作

个体工户linjing-lab托管在Github,现公开招募商用与合作人员,目标人群分为以下几个方向: 数学、信息科学、计算机专业的大学高年级学生,熟悉C和面向对象模型,擅长Pybind11编译算子到Python环境。26岁以下的大学本科毕…

Srouce Insight 4出现乱码

今天用SI4打开一个工程文件,一打开发现注释全是乱码。中文全部看不出来,英文和数字可以看得出来。 那是因为中文的编码格式不算特别兼容。所以需要调整编码格式。 于是我在这里调整了编码格式: 找到菜单的Options-Preferences里面的Files 调…

【Android面试八股文】Kotlin内置标准函数let的原理是什么?

确实,let 函数在 Kotlin 中被广泛使用,特别是在处理可空类型或者需要在对象上执行一系列操作后返回结果的场景中非常有用。 let 函数的源代码 /*** Calls the specified function [block] with `this` value as its argument and returns its result.** For detailed usage i…

Kubernetes容器运行时:Containerd vs Docke

容器化技术笔记 Kubernetes容器运行时:Containerd vs Docke - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this arti…

Python 获取class_name win32gui

win32gui 是 Python 的一个扩展库,它提供了对 Windows GUI API 的访问,允许你编写脚本来与 Windows 桌面应用程序进行交互。以下是 win32gui 库的一些常用属性和方法6466677073: 常用方法 FindWindow: 根据窗口类名和窗口名获取窗口句柄。 …

数据可视化实验五:seaborn绘制进阶图形

目录 一、绘制动态轨迹图 1.1 代码实现 1.2 绘制结果 二、使用seaborn绘制关系图 2.1 绘制散点图分析产品开发部已离职的员工的评分与平均工作时间 2.1.1 代码实现 2.1.2 绘制结果 ​编辑 2.2 基于波士顿房价数据,绘制房间数和房屋价格的折线图 2.2.1 代码…

vscode用vue框架写一个登陆页面

目录 一、创建登录页面 二、构建好登陆页面的路由 三、编写登录页代码 1.添加基础结构 2.给登录页添加背景 3.解决填充不满问题 4.我们把背景的红颜色替换成背景图: 5.在页面中央添加一个卡片来显示登录页面 6.设置中间卡片页面的左侧 7.设置右侧的样式及…