File Fix-Python-3.12-test-failures.patch of Package python-pydantic

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

openSUSE Build Service is sponsored by