间接参数化时如何注释request.param?

2024-03-08

In the 间接参数化示例 https://docs.pytest.org/en/stable/example/parametrize.html#indirect-parametrization我想输入提示request.param表示特定类型,astr例如。

问题是因为争论fixt必须是request https://docs.pytest.org/en/stable/reference.html#requestFixture 似乎没有办法表明通过的参数是什么类型“选修的param属性”应该是(引用文档)。

有哪些替代方案?也许记录中的类型提示fixt文档字符串,或在test_indirect文档字符串?

@pytest.fixture
def fixt(request):
    return request.param * 3

@pytest.mark.parametrize("fixt", ["a", "b"], indirect=True)
def test_indirect(fixt):
    assert len(fixt) == 3

截至目前(版本 6.2),pytest不提供任何类型提示param属性。如果您只需输入param不管其余的FixtureRequest字段和方法,您可以内联自己的 impl 存根:

from typing import TYPE_CHECKING


if TYPE_CHECKING:
    class FixtureRequest:
        param: str
else:
    from typing import Any
    FixtureRequest = Any


@pytest.fixture
def fixt(request: FixtureRequest) -> str:
    return request.param * 3

如果你想扩展现有的类型FixtureRequest,存根变得更加复杂:

from typing import TYPE_CHECKING


if TYPE_CHECKING:
    from pytest import FixtureRequest as __FixtureRequest
    class FixtureRequest(__FixtureRequest):
        param: str
else:
    from pytest import FixtureRequest


@pytest.fixture
def fixt(request: FixtureRequest) -> str:
    return request.param * 3

理想情况下,pytest将允许通用param输入FixtureRequest, e.g.

P = TypeVar("P")  # generic param type

class FixtureRequest(Generic[P]):
    def __init__(self, param: P, ...):
        ...

然后你就会做

from pytest import FixtureRequest

@pytest.fixture
def fixt(request: FixtureRequest[str]) -> str:
    return request.param * 3

但不确定这种类型是否与当前的一致pytest的代码库 - 我猜它被省略是有原因的......

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

间接参数化时如何注释request.param? 的相关文章

  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • Pandas 日期时间格式

    是否可以用零后缀表示 pd to datetime 似乎零被删除了 print pd to datetime 2000 07 26 14 21 00 00000 format Y m d H M S f 结果是 2000 07 26 14
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • Python:XML 内所有标签名称中的字符串替换(将连字符替换为下划线)

    我有一个格式不太好的 XML 标签名称内有连字符 我想用下划线替换它 以便能够与 lxml objectify 一起使用 我想替换所有标签名称 包括嵌套的子标签 示例 XML

随机推荐

  • RDS实例CPU利用率

    我的 amazon mysql 大型 RDS 实例的 CPU 利用率非常高 大约 70 没有任何真正的原因 如何找到哪个查询或进程正在损害我的实例 thanks 标准方法是检查SHOW PROCESSLIST or SHOW ENGINE
  • Google Drive API,上传文件 [Python]

    我使用 API 将备份从服务器上传到我的谷歌驱动器 授权顺利通过 文件已上传 但文件未出现在列表中 代码 import httplib2 import pprint from apiclient discovery import build
  • AttributeError:“识别器”对象没有属性“识别”

    我正在尝试 Python 中的语音识别模块 版本 3 5 并收到以下错误 AttributeError 识别器 对象没有属性 识别 这是我使用的代码 import pyaudio import speech recognition as s
  • 使用 RMySQL 的 UTF8 编码

    我正在尝试从 mysql 数据库查询数据 当然 其中包含一些字符串 对于连接和数据检索 我在 R 中使用 RMySQL 效果很好 除了一件事 我正在检索的字符串似乎不是 utf8 格式的 但我需要这个 因为这些字符串中有一些德语 Umlau
  • Python:检查两个列表之间字符串的部分匹配

    我有两个列表 如下所示 c John query 989877 forcast Tamm isl My name is Anne Query 989877 John Tamm Ju 我想检查其中的每一项isl中的每一项c这样我就可以得到所有
  • Android 上的 RTSP 客户端实现

    我看到很多与此相关的问题 尽管如此 我认为我的答案还没有 我想在 Android 上使用已编码的 RTSP 客户端与 MediaCodec 一起使用 以便捕获 H264 中的 RTSP 流 然后解码并显示它 我使用了 VideoView 和
  • 在仅限 iPhone 的应用程序中播放 YouTube 视频 - 失去控制

    下面的代码用于在视图上放置一个小的 WebView 以便用户可以点击它 视频会以全屏模式打开并播放 所有这些都有效 但游戏 4 秒后控件就会消失并且不会重新出现 点击 旋转 视频结束后 控件会重新出现 并且 完成 按钮变为可用 然而 一旦
  • 将 CallByName 与表单字段的“事件接收器”结合使用

    我的应用程序中的几个表单上都有文本框 这些文本框具有 缩放 功能 双击它们 会出现一个弹出表单 您可以根据自己的喜好调整大小和编辑内容 这是通过类模块 appZoomText 进行编码的 该模块充当文本框事件的 事件接收器 我正在尝试创建一
  • 想要创建一个 Dictionary 类型的自定义类

    我想创建一个基本上包装字典的自定义类 我想向其添加一个名为 Name 的属性 I tried public class MyDictionary
  • Chrome 声称简单函数未定义

    我在空闲时间制作了一个莫尔斯电码翻译器 并且第一次在 Chrome 中尝试了它 当 的时候translate 函数被调用 Chrome 抛出异常Uncaught TypeError translate is not a function a
  • 如何将“$modalInstance”注入控制器?

    在我的应用程序中 当我发现用户未登录后 我想打开一个模式对话框 when showtask id templateUrl Home Template showtask resolve ShowTaskCtrl resolve access
  • 为什么在 Python 中隐式检查是否为空? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 块的逆是什么:以 rebol / red 加载文本

    假设我有一些 rebol red 代码 如果我加载源文本 我会得到一个块 但是如何从块中取回源文本 我尝试了表单块 但它没有返回源文本 text Red Title Red Pretty Printer out none output te
  • Javascript 中的会话值

    如何在 JavaScript 中读取和写入会话值 如果您谈到服务器端会话值 除了以某种方式与服务器通信之外没有其他方法 例如 使用异步回调 您可以使用某种方法读取 写入它们 对于客户端会话变量的模拟 您可能想看看here http www
  • 无法通过代理推送到github

    请帮忙 我正在尝试从我的工作场所推送到 github 我试过这个 myuser somewhere c sites mrquery master git remote add origin ssh email protected cdn c
  • 创建 React 应用程序已部署,但 github 页面显示来自 manifest.json 的 404

    谁能帮我找出清单 json 文件的问题 我将一个简单的入门 create react 应用程序部署到 github 页面 并通过命令行显示该应用程序已发布 但当我转到 github 页面时页面未加载 当我查看控制台时 我收到来自 manif
  • 单例类方法的并发调用

    我有一个单例类 public class Singleton private static Singleton istance null private Singleton public synchronized static Single
  • 推荐一个用 C# 读取 Excel 文件的教程 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有 C 经验 但使用 C 读取 Excel 内容的经验有限 我的任务非常简单 只需读取 Excel 文档的每一行的每一列并检索它们的值
  • 重新调度键盘事件

    正在开发 Angular TypeScript 应用程序 其中我们有一个自定义的基本文本编辑器 尝试适当地处理用户突出显示的选择然后按下按键以替换该选择的情况 为了解决这个问题 我们需要在插入其预期内容之前正确删除他们选择的 隐藏 组件 我
  • 间接参数化时如何注释request.param?

    In the 间接参数化示例 https docs pytest org en stable example parametrize html indirect parametrization我想输入提示request param表示特定类