Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytest 测试框架学习(12):pytest.deprecated_call

pytest 测试框架学习(12):pytest.deprecated_call

作者头像
Mokwing
发布于 2020-09-08 03:16:19
发布于 2020-09-08 03:16:19
50700
代码可运行
举报
文章被收录于专栏:MokwingMokwing
运行总次数:0
代码可运行

pytest.deprecated_call

含义

deprecated_call: 是一个上下文管理器,可确保代码块触发 DeprecationWarning 或者 PendingDeprecationWarning; 源码:

deprecated_call 可以将函数当做参数传入,后面跟上参数。

使用

  1. 函数不传参
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import warnings
def api_call_v2():
	warnings.warn('use v3 of this api', DeprecationWarning)
	return 200
def test_deprecated_call():
	with deprecated_call():
		assert api_call_v2() == 200
  1. 函数传参,并当做参数传入 deprecated_call 中
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import warnings
from pytest import deprecated_call

def api_call_v2(*args, **kwargs):
    warnings.warn('use v3 of this api', DeprecationWarning)
    return kwargs.get("b")

def test_deprecated_call():
    assert deprecated_call(api_call_v2, 123, 456, a=1, b=2, c=3) == 2

这个函数最主要的其实是将被标记了 DeprecationWarning 或者 PendingDeprecationWarning 的函数能够正常被调用,不会在执行时出现 相应的 warning 信息。

直接调用,弹出警告:

使用 deprecated_call,没有警告显示:

说明:本篇参考官网并加入自己些许理解翻译而来,觉得有用,可以点赞和赞赏哦(^ v ^),谢谢支持;如果有不足地方,可留言评论。后续将继续更新。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
你所不知道的C#中的细节
有一个东西叫做鸭子类型,所谓鸭子类型就是,只要一个东西表现得像鸭子那么就能推出这玩意就是鸭子。
沙漠尽头的狼
2022/04/18
3230
深入探讨 C# 和 .NET 中 async/await 的历史、背后的设计决策和实现细节
对async/await的支持已经存在了十多年。它的出现,改变了为 .NET 编写可伸缩代码的方式,你在不了解幕后的情况下也可以非常普遍地使用该功能。
郑子铭
2023/11/08
1K0
深入探讨 C# 和 .NET 中 async/await 的历史、背后的设计决策和实现细节
.NET 异步详解
博客园中有很多关于 .NET async/await 的介绍,但是很遗憾,很少有正确的,甚至说大多都是“从现象编原理”都不过分。
梁规晓
2020/10/26
7700
多线程合集(三)---异步的那些事之自定义AsyncTaskMethodBuilder
    之前在上一篇文章中多线程合集(二)---异步的那些事,async和await原理抛析,我们从源码去分析了async和await如何运行,以及将编译后的IL代码写成了c#代码,以及实现自定义的Awaiter,自定义异步状态机同时将本系列的第一篇文章的自定义TaskScheduler和自定义的Awaiter结合起来,将代码跑了起来,而在c#10之后,我们可以实现自定义的异步生成器,在上一篇文章中,我们将编译后的代码还原成了c#代码,其中就有用到了一个AsyncTaskMethodBuilder的类,搁以前我们只能使用编译器编译之后的AsyncTaskMethodBuilder,现在我们已经可以自定义了,如果再加上上一章节的自定义状态机,加调度,可能会更好玩一些,接下来就为大家奉上代码。
陈显达
2023/10/16
2630
多线程合集(三)---异步的那些事之自定义AsyncTaskMethodBuilder
C#多线程(15):任务基础③
先说一下 TaskAwaiter,TaskAwaiter 表示等待异步任务完成的对象并为结果提供参数。
痴者工良
2021/04/26
7410
理解C#中的ValueTask
Task类是在.NET Framework 4引入的,位于System.Threading.Tasks命名空间下,它与派生的泛型类Task<TResult>已然成为.NET编程的主力,也是以async/await(C# 5引入的)语法糖为代表的异步编程模型的核心。
用户9127601
2023/09/12
4420
理解C#中的ValueTask
C# 常用接口学习 IEnumerable<T>
我们先去看看公开的.Net4.0的源程序中IEnumerable<T>、IEnumerable、IEnumerator<T>和IEnumerator这四个接口是如何声明的:
用户9127601
2021/11/01
8300
.NET面试题系列[9] - IEnumerable
IEnumerable及IEnumerable的泛型版本IEnumerable<T>是一个接口,它只含有一个方法GetEnumerator。Enumerable这个静态类型含有很多扩展方法,其扩展的目标是IEnumerable<T>。
s055523
2018/09/14
6860
深入理解C# 3.x的新特性(2):Extension Method[下篇]
四、Extension Method的本质 通过上面一节的介绍,我们知道了在C#中如何去定义一个Extension Method:它是定义在一个Static class中的、第一个Parameter标记为this关键字的Static Method。在这一节中,我们来进一步认识Extension Method。 和C# 3.0的其他新特性相似,Extension Method仅仅是C#这种.NET Programming Language的新特性而已。我们知道,C#是一种典型的编译型的语言,我们编写的Sour
蒋金楠
2018/02/07
7210
一个简单的模拟实例说明Task及其调度问题
Task对于.NET的重要性毋庸置疑。通过最近的一些面试经历,发现很多人对与Task及其调度机制,以及线程和线程池之间的关系并没有清晰的认识。本文采用最简单的方式模拟了Task的实现,旨在说明Task是什么?它是如何被调度执行的?源代码从这里下载。
蒋金楠
2022/05/09
5311
一个简单的模拟实例说明Task及其调度问题
多线程合集(二)---异步的那些事,async和await原理抛析
       在c#中,异步的async和await原理,以及运行机制,可以说是老生常谈,经常在各个群里看到有在讨论这个的,而且网上看到的也只是对异步状态机的一些讲解,甚至很多人说异步状态机的时候,他们说的是在运行时去构建状态机对线程状态进行调度,实际上异步状态机是属于编译期间,通过生成dll,然后我们使用反编译工具查看,是可以看到IL构建了异步状态机,并且在运行时添加了两个特性,其中比较重要的是AsyncStateMachine特性这个特性接受的是一个type类型的参数,即指定用的是哪一个异步状态机。所以在写多线程的时候,前面第一篇主要写线程方面的一些具体的使用,以及实现自定义的一些操作,接下来的这篇可能会注重原理方面的讲解,以及结合一些代码实现自定义状态机。
陈显达
2022/11/07
7170
c#异步编程-Task(二)
大家好,本次继续分享自己的学习经历。本文主要分享Task异步编程内容,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。
JusterZhu
2022/12/07
2.6K0
c#异步编程-Task(二)
从未来看C#!
现在当我们需要声明一个类型用来保存数据,并且支持数据的解构的话,需要像如下一样写出大量的样板代码:
郑子铭
2023/09/08
1790
从未来看C#
现在当我们需要声明一个类型用来保存数据,并且支持数据的解构的话,需要像如下一样写出大量的样板代码:
用户9127601
2023/08/30
2690
从未来看C#
C# 8.0的计划特性
虽然现在C# 7才发布不久,并且新的版本和特性还在增加中,但是C# 8.0已经为大家公开了一些未来可能出现的新特性。
句幽
2020/04/27
6930
理解Task和和async await
本文将详解C#类当中的Task,以及异步函数async await和Task的关系
ryzenWzd
2020/11/12
2.4K0
理解Task和和async await
C# 中yield关键字解析
  前段时间了解到yield关键字,一直觉得还不错。今天给大家分享一下yield关键字的用法。yield return 返回集合不是一次性返回所有集合元素,而是一次调用返回一个元素。具体如何使用yield return 返回集合呢?我们一起往下面看吧。
小世界的野孩子
2019/11/02
9500
深入解析C#异步编程:await 关键字背后的实现原理
在C#中,async 和 await 关键字用于编写异步代码。本文将详细介绍 await 的实现原理,包括状态机的生成、回调函数的注册和触发等关键步骤。
郑子铭
2024/11/26
2530
深入解析C#异步编程:await 关键字背后的实现原理
【5min+】你怎么穿着品如的衣服?IEnumerable AND IEnumerator
【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。
句幽
2020/04/27
4120
C# 7.0 探索之旅
模式匹配(Pattern matching) C# 7.0 引入了模式匹配的概念,一种从抽象的角度来说,指可以测试一个值是否有某种特定的“形状”、并在满足这一条件的时候从值中提取信息的句法元素。 C# 7.0 中的模式的例子有: 无序列表c(c 为 C# 中的一个常量表达式)形式的常量模式(Constant pattern),来测试输入是否等于 c T x(T 为一个类型,x 为一个标识符)形式的类型模式(Type pattern),来测试输入是否有类型 T,并在满足条件的时候将值提取成全新的 T 类型的变
陈仁松
2018/03/28
1.3K0
相关推荐
你所不知道的C#中的细节
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档