Ai
2 Star 0 Fork 1

OpenCloudOS Stream/python-pydantic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Fix-Python-3.12-test-failures.patch 2.85 KB
一键复制 编辑 原始数据 按行查看 历史
brucezhang 提交于 2024-11-22 10:47 +08:00 . Fix CVE-2024-3772
From 5fd4002c62d3538efc3ff51f92850f4c0bf4ffab Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
Date: Sat, 12 Aug 2023 00:21:50 +0000
Subject: [PATCH] Fix Python 3.12 test failures
---
tests/test_abc.py | 15 ++++++++++++---
tests/test_generics.py | 6 ++++--
tests/test_types.py | 6 +++++-
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/tests/test_abc.py b/tests/test_abc.py
index 8beed04..d7e8f3d 100644
--- a/tests/test_abc.py
+++ b/tests/test_abc.py
@@ -1,4 +1,5 @@
import abc
+import sys
import pytest
@@ -40,7 +41,15 @@ def test_model_subclassing_abstract_base_classes_without_implementation_raises_e
with pytest.raises(TypeError) as excinfo:
Model(some_field='some_value')
- assert str(excinfo.value) == (
- "Can't instantiate abstract class Model with abstract methods "
- "my_abstract_classmethod, my_abstract_method, my_abstract_property, my_abstract_staticmethod" # noqa: Q000
+ message = (
+ (
+ "Can't instantiate abstract class Model with abstract methods "
+ "my_abstract_classmethod, my_abstract_method, my_abstract_property, my_abstract_staticmethod" # noqa: Q000
+ )
+ if sys.version_info < (3, 12)
+ else (
+ "Can't instantiate abstract class Model without an implementation for abstract methods "
+ "'my_abstract_classmethod', 'my_abstract_method', 'my_abstract_property', 'my_abstract_staticmethod'" # noqa: Q000
+ )
)
+ assert str(excinfo.value) == message
diff --git a/tests/test_generics.py b/tests/test_generics.py
index 68f93d4..23e6263 100644
--- a/tests/test_generics.py
+++ b/tests/test_generics.py
@@ -579,9 +579,11 @@ def test_partial_specification_name():
b: BT
partial_model = Model[int, BT]
- assert partial_model.__name__ == 'Model[int, BT]'
+ expected = 'Model[int, BT]' if sys.version_info < (3, 12) else 'Model[int, TypeVar]'
+ assert partial_model.__name__ == expected
concrete_model = partial_model[str]
- assert concrete_model.__name__ == 'Model[int, BT][str]'
+ expected += '[str]'
+ assert concrete_model.__name__ == expected
def test_partial_specification_instantiation():
diff --git a/tests/test_types.py b/tests/test_types.py
index b908d46..4277398 100644
--- a/tests/test_types.py
+++ b/tests/test_types.py
@@ -2713,7 +2713,11 @@ def test_secretfield():
class Foobar(SecretField):
...
- message = "Can't instantiate abstract class Foobar with abstract methods? get_secret_value"
+ message = (
+ "Can't instantiate abstract class Foobar with abstract methods? get_secret_value"
+ if sys.version_info < (3, 12)
+ else "Can't instantiate abstract class Foobar without an implementation for abstract method 'get_secret_value'"
+ )
with pytest.raises(TypeError, match=message):
Foobar()
--
2.41.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/opencloudos-stream/python-pydantic.git
git@gitee.com:opencloudos-stream/python-pydantic.git
opencloudos-stream
python-pydantic
python-pydantic
master

搜索帮助