e328ce8
From f9ff9135b472c78a7333d6272c62b92217897464 Mon Sep 17 00:00:00 2001
e328ce8
From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?=
e328ce8
 <frenzy.madness@gmail.com>
e328ce8
Date: Thu, 7 Mar 2024 10:23:46 +0100
e328ce8
Subject: [PATCH] Fix test_ne in test_cmp.py for Python 3.13 (#1255)
e328ce8
e328ce8
* Fix test_ne in test_cmp.py for Python 3.13
e328ce8
e328ce8
Compiler in Python 3.13+ strips indents from docstrings
e328ce8
so they need to be compared without it for new Pythons.
e328ce8
e328ce8
Fixes: https://github.com/python-attrs/attrs/issues/1228
e328ce8
e328ce8
* [pre-commit.ci] auto fixes from pre-commit.com hooks
e328ce8
e328ce8
for more information, see https://pre-commit.ci
e328ce8
e328ce8
---------
e328ce8
e328ce8
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
e328ce8
---
e328ce8
 src/attr/_compat.py |  1 +
e328ce8
 tests/test_cmp.py   | 11 +++++++----
e328ce8
 2 files changed, 8 insertions(+), 4 deletions(-)
e328ce8
e328ce8
diff --git a/src/attr/_compat.py b/src/attr/_compat.py
e328ce8
index 46b05ca4..9010047d 100644
e328ce8
--- a/src/attr/_compat.py
e328ce8
+++ b/src/attr/_compat.py
e328ce8
@@ -14,6 +14,7 @@
e328ce8
 PY_3_9_PLUS = sys.version_info[:2] >= (3, 9)
e328ce8
 PY310 = sys.version_info[:2] >= (3, 10)
e328ce8
 PY_3_12_PLUS = sys.version_info[:2] >= (3, 12)
e328ce8
+PY_3_13_PLUS = sys.version_info[:2] >= (3, 13)
e328ce8
 
e328ce8
 
e328ce8
 if sys.version_info < (3, 8):
e328ce8
diff --git a/tests/test_cmp.py b/tests/test_cmp.py
e328ce8
index 07bfc523..b84b66fd 100644
e328ce8
--- a/tests/test_cmp.py
e328ce8
+++ b/tests/test_cmp.py
e328ce8
@@ -4,10 +4,10 @@
e328ce8
 Tests for methods from `attrib._cmp`.
e328ce8
 """
e328ce8
 
e328ce8
-
e328ce8
 import pytest
e328ce8
 
e328ce8
 from attr._cmp import cmp_using
e328ce8
+from attr._compat import PY_3_13_PLUS
e328ce8
 
e328ce8
 
e328ce8
 # Test parameters.
e328ce8
@@ -54,6 +54,9 @@
e328ce8
 cmp_data = eq_data + order_data
e328ce8
 cmp_ids = eq_ids + order_ids
e328ce8
 
e328ce8
+# Compiler strips indents from docstrings in Python 3.13+
e328ce8
+indent = "" if PY_3_13_PLUS else " " * 8
e328ce8
+
e328ce8
 
e328ce8
 class TestEqOrder:
e328ce8
     """
e328ce8
@@ -325,7 +328,7 @@ def test_ne(self):
e328ce8
         method = self.cls.__ne__
e328ce8
         assert method.__doc__.strip() == (
e328ce8
             "Check equality and either forward a NotImplemented or\n"
e328ce8
-            "        return the result negated."
e328ce8
+            f"{indent}return the result negated."
e328ce8
         )
e328ce8
         assert method.__name__ == "__ne__"
e328ce8
 
e328ce8
@@ -393,7 +396,7 @@ def test_ne(self):
e328ce8
         method = self.cls.__ne__
e328ce8
         assert method.__doc__.strip() == (
e328ce8
             "Check equality and either forward a NotImplemented or\n"
e328ce8
-            "        return the result negated."
e328ce8
+            f"{indent}return the result negated."
e328ce8
         )
e328ce8
         assert method.__name__ == "__ne__"
e328ce8
 
e328ce8
@@ -465,7 +468,7 @@ def test_ne(self):
e328ce8
         method = self.cls.__ne__
e328ce8
         assert method.__doc__.strip() == (
e328ce8
             "Check equality and either forward a NotImplemented or\n"
e328ce8
-            "        return the result negated."
e328ce8
+            f"{indent}return the result negated."
e328ce8
         )
e328ce8
         assert method.__name__ == "__ne__"
e328ce8