首页 > 编程问答 >阻止 OpenAI 请求

阻止 OpenAI 请求

时间:2024-07-22 04:20:42浏览次数:8  
标签:python unit-testing openai-api azure-openai

经过我自己的多次尝试以及大量的 ChatGPT 和 Claude 查询后,我举手向 StackOverflow 询问一个看似简单的问题:

如何在全球范围内阻止 OpenAI 发出 HTTP 请求当使用 pytest 进行测试时?

我尝试过的事情(这个列表可能会忘记很多):

  1. 使用 httpx-blockage
  2. conftest.py 添加 OpenAI 补丁:
@pytest.fixture(autouse=True)
def block_azure_openai():
    with patch.object(AzureOpenAI, '__init__', return_value=None):
        yield
  1. conftest.py 补丁 OpenAI| ||和 返回 OpenAI 客户端实例的实用函数: 修补 AsyncClient
@pytest.fixture(autouse=True)
def block_httpx(monkeypatch):
    with patch('ai.utils.get_openai_client', return_value=Mock()), patch('ai.utils.AzureOpenAI', return_value=None):
        yield
  1. 修补客户端
@pytest.fixture(scope='session')
async def block_httpx(monkeypatch):
    async def mock_httpx_request(*args, **kwargs):
        raise RuntimeError("HTTPx requests are blocked during tests")

    monkeypatch.setattr(httpx.AsyncClient, "request", mock_httpx_request)
    # Add more if needed for other methods like .get, .post, etc.
  1. 这些都不起作用,在运行测试时我继续在 Azure 的指标中看到,请求进来。
@pytest.fixture(scope='session')
def block_httpx(monkeypatch):
    def mock_httpx_request(*args, **kwargs):
        raise RuntimeError("HTTPx requests are blocked during tests")

    with patch('httpcore'):
        monkeypatch.setattr(httpx.Client, "request", mock_httpx_request)
        yield

我剩下的唯一想法就是退出这份工作,这样用户故事就可以成为别人的问题。希望这里有人能有比这更好的

标签:python,unit-testing,openai-api,azure-openai
From: 78776267

相关文章

  • Python + Polars:如何有效地“fill_null”仅 DataFrame 的某些列?
    例如,假设我只想fill_null(strategy="zero")DataFrame的数字列。我当前的策略是这样做:final_df=df.select(cs.exclude(cs.numeric()))final_df.with_columns(df.select(cs.numeric()).fill_null(strategy="zero"))是否有替代的、更惯用或更有效的方法来实现我......
  • 如何找到 Windows 上 Python 的安装位置?
    我想找出我的Python在Windows上的安装路径。例如:C:\Python25如何找到Python的安装位置?在Windows上查找Python安装位置的方法有很多种:1.使用where命令(推荐方法):打开命令提示符(cmd)。输入以下命令并按回车键:wherepython......
  • Python Pandas:如何解析没有行结尾的 CSV
    如何解析没有行结尾的CSV文件?示例数据sep=;Id;Date;1;1980-02-29;2;1980-03-10;3;;可以使用lineterminator参数指定行终止符来解析没有行尾的CSV文件。在这种情况下,你可以将lineterminator设置为一个空字符串('')。以下是使用......
  • Python 中的 azure.ai.translation.document - 无法使用当前权限访问源文档位置
    我在使用Python中的azure.ai.translation.document库时遇到问题。我已经在Azure中设置了翻译服务以及带有两个容器的Blob存储。我已使用“用户委托密钥”创建了SAS连接。一种用于源(读取/列表),一种用于目标(写入/列表)。例如我尝试运行Python程序,但源b......
  • 博文标题:探索Python中的元编程:装饰器的魔法
    引言在Python的世界里,装饰器(Decorators)是一种非常强大的特性,它允许程序员在不修改原始函数代码的情况下,为函数添加新的功能。这种机制不仅增强了代码的可读性和可维护性,还提供了高度的灵活性和扩展性。本文将深入探讨装饰器的基本概念、工作原理以及如何利用它们来简化和......
  • 使用Python 和 Selenium 抓取 酷狗 音乐专辑 附源码
    在这篇博客中,我将分享如何使用Python和Selenium抓取酷狗音乐网站上的歌曲信息。我们将使用BeautifulSoup解析HTML内容,并提取歌曲和专辑信息。准备工作首先,我们需要安装一些必要的库:pipinstallrequestsbeautifulsoup4selenium代码实现以下是完整的代码:importosi......
  • 基于Django+Python的网易新闻与评论舆情热点分析平台
    一、引言在信息爆炸的时代,人们每天面对海量的信息流,如何从中筛选出有价值的信息并进行深度分析变得尤为重要。基于Django+Python的网易新闻与评论舆情热点分析平台,旨在为用户提供一个高效的数据分析工具,帮助用户快速理解新闻趋势、情感倾向以及公众对特定事件的看法。通过自......
  • Python解释器详解及其应用场景
    Python解释器及其应用场景一、Python解释器概述Python解释器是Python程序运行的核心,它负责读取Python代码(即.py文件)并将其转换为机器语言,从而使计算机能够执行。简单来说,Python解释器就像是Python代码与计算机之间的翻译官,把Python代码翻译成计算机能懂的语言。Python解释器......
  • 利用【MATLAB】和【Python】进行【图与网络模型】的高级应用与分析】
    目录一、图与网络的基本概念1.无向图与有向图2.简单图、完全图、赋权图3.顶点的度4.子图与连通性5.图的矩阵表示MATLAB代码实例Python代码实例 二、最短路径问题1.最短路径问题的定义2.Dijkstra算法MATLAB代码实例Python代码实例三、最小生成树问题1.......
  • python_wholeweek1
    目录(day1-7)一周的学习1.计算机之编程什么是编程语言什么是编程为什么要编程2.计算机组成原理计算机五大组成CPU控制器运算器内存外存输入设备输出设备(I/O设备)32位和64位32位64位多核CPU硬盘工作原理机械硬盘工作原理固态硬盘工作原理3.计算机操作系统文件是什么?应用程序是什......