From 3bdf6b8dc35aa30111b64558cc9a6a43f8b23ce9 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Sun, 11 Feb 2024 12:25:26 +0300 Subject: [PATCH 1/2] gh-115285: Fix `test_dataclasses` with `-OO` mode --- Lib/test/test_dataclasses/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_dataclasses/__init__.py b/Lib/test/test_dataclasses/__init__.py index 272d427875ae40..74e364e69b40ff 100644 --- a/Lib/test/test_dataclasses/__init__.py +++ b/Lib/test/test_dataclasses/__init__.py @@ -22,6 +22,8 @@ import typing # Needed for the string "typing.ClassVar[int]" to work as an annotation. import dataclasses # Needed for the string "dataclasses.InitVar[int]" to work as an annotation. +from test import support + # Just any custom exception we can catch. class CustomError(Exception): pass @@ -2222,7 +2224,10 @@ class C: """Lorem ipsum""" x: int - self.assertEqual(C.__doc__, "Lorem ipsum") + if support.HAVE_DOCSTRINGS: + self.assertEqual(C.__doc__, "Lorem ipsum") + else: + self.assertEqual(C.__doc__, "C(x: int)") def test_docstring_no_fields(self): @dataclass From d386c693fabe0ea652edcd35c5a566c727a26cef Mon Sep 17 00:00:00 2001 From: sobolevn Date: Mon, 12 Feb 2024 09:59:20 +0300 Subject: [PATCH 2/2] Skip test on no docstrings --- Lib/test/test_dataclasses/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_dataclasses/__init__.py b/Lib/test/test_dataclasses/__init__.py index 74e364e69b40ff..ede74b0dd15ccf 100644 --- a/Lib/test/test_dataclasses/__init__.py +++ b/Lib/test/test_dataclasses/__init__.py @@ -2218,16 +2218,14 @@ def assertDocStrEqual(self, a, b): # whitespace stripped. self.assertEqual(a.replace(' ', ''), b.replace(' ', '')) + @support.requires_docstrings def test_existing_docstring_not_overridden(self): @dataclass class C: """Lorem ipsum""" x: int - if support.HAVE_DOCSTRINGS: - self.assertEqual(C.__doc__, "Lorem ipsum") - else: - self.assertEqual(C.__doc__, "C(x: int)") + self.assertEqual(C.__doc__, "Lorem ipsum") def test_docstring_no_fields(self): @dataclass