File testsuite_fixes.patch of Package python-pycodestyle

Testsuite fixes to pass with python 3.11.4 and python 3.12
Fixes taken from upstream commits:
e20394e5cbd8d440c9c1868ddc25d036afcbfe45
e8d84098da10d013ee686027e174814dbe4dd908

diff -Nrua pycodestyle-2.10.0.original/pycodestyle.py pycodestyle-2.10.0/pycodestyle.py
--- pycodestyle-2.10.0.original/pycodestyle.py	2022-11-23 19:26:34.000000000 +0100
+++ pycodestyle-2.10.0/pycodestyle.py	2023-07-18 13:15:24.537262524 +0200
@@ -196,7 +196,6 @@
     These options are highly recommended!
 
     Okay: if a == 0:\n    a = 1\n    b = 1
-    E101: if a == 0:\n        a = 1\n\tb = 1
     """
     indent = INDENT_REGEX.match(physical_line).group(1)
     for offset, char in enumerate(indent):
@@ -802,9 +801,10 @@
             (index < 2 or tokens[index - 2][1] != 'class') and
             # Allow "return (a.foo for a in range(5))"
             not keyword.iskeyword(prev_text) and
-            # 'match' and 'case' are only soft keywords
             (
                 sys.version_info < (3, 9) or
+                # 3.12+: type is a soft keyword but no braces after
+                prev_text == 'type' or
                 not keyword.issoftkeyword(prev_text)
             )
         ):
diff -Nrua pycodestyle-2.10.0.original/testsuite/E10.py pycodestyle-2.10.0/testsuite/E10.py
--- pycodestyle-2.10.0.original/testsuite/E10.py	2022-11-23 19:26:34.000000000 +0100
+++ pycodestyle-2.10.0/testsuite/E10.py	2023-07-18 13:15:24.537262524 +0200
@@ -1,8 +1,3 @@
-#: E101 W191
-for a in 'abc':
-    for b in 'xyz':
-        print a  # indented with 8 spaces
-	print b  # indented with 1 tab
 #: E101 E122 W191 W191
 if True:
 	pass
diff -Nrua pycodestyle-2.10.0.original/testsuite/E90.py pycodestyle-2.10.0/testsuite/E90.py
--- pycodestyle-2.10.0.original/testsuite/E90.py	2022-11-23 19:26:34.000000000 +0100
+++ pycodestyle-2.10.0/testsuite/E90.py	2023-07-18 13:15:24.541262682 +0200
@@ -1,6 +1,4 @@
 #: E901
-}
-#: E901
 = [x
 #: E901 E101 W191
 while True:
@@ -8,14 +6,6 @@
 	    pass
 	except:
 		print 'Whoops'
-#: E122 E225 E251 E251
-
-# Do not crash if code is invalid
-if msg:
-    errmsg = msg % progress.get(cr_dbname))
-
-def lasting(self, duration=300):
-    progress = self._progress.setdefault('foo', {}
 #: Okay
 
 # Issue #119
diff -Nrua pycodestyle-2.10.0.original/testsuite/python312.py pycodestyle-2.10.0/testsuite/python312.py
--- pycodestyle-2.10.0.original/testsuite/python312.py	1970-01-01 01:00:00.000000000 +0100
+++ pycodestyle-2.10.0/testsuite/python312.py	2023-07-18 13:15:24.541262682 +0200
@@ -0,0 +1,9 @@
+#: Okay
+# https://github.com/python/cpython/issues/90432: fixed in 3.12
+def foo():
+    pas
+
+\
+
+def bar():
+    pass
diff -Nrua pycodestyle-2.10.0.original/testsuite/test_api.py pycodestyle-2.10.0/testsuite/test_api.py
--- pycodestyle-2.10.0.original/testsuite/test_api.py	2022-11-23 19:26:34.000000000 +0100
+++ pycodestyle-2.10.0/testsuite/test_api.py	2023-07-18 13:15:24.541262682 +0200
@@ -329,12 +329,18 @@
         count_errors = pep8style.input_file('stdin', lines=['\x00\n'])
 
         stdout = sys.stdout.getvalue()
-        expected = "stdin:1:1: E901 ValueError"
-        self.assertTrue(stdout.startswith(expected),
-                        msg='Output %r does not start with %r' %
-                        (stdout, expected))
+        if sys.version_info < (3, 11, 4):
+            expected = ["stdin:1:1: E901 ValueError: source code string cannot contain null bytes"]  # noqa: E501
+        elif sys.version_info < (3, 12):
+            expected = ["stdin:1:1: E901 SyntaxError: source code string cannot contain null bytes"]  # noqa: E501
+        else:
+            expected = [
+                "stdin:1:1: E901 SyntaxError: source code string cannot contain null bytes",   # noqa: E501
+                "stdin:1:1: E901 TokenError: source code cannot contain null bytes",   # noqa: E501
+            ]
+        self.assertEqual(stdout.splitlines(), expected)
         self.assertFalse(sys.stderr)
-        self.assertEqual(count_errors, 1)
+        self.assertEqual(count_errors, len(expected))
 
     def test_styleguide_unmatched_triple_quotes(self):
         pycodestyle.register_check(DummyChecker, ['Z701'])
@@ -347,35 +353,22 @@
         pep8style.input_file('stdin', lines=lines)
         stdout = sys.stdout.getvalue()
 
-        expected = 'stdin:2:5: E901 TokenError: EOF in multi-line string'
-        self.assertTrue(expected in stdout)
-
-    def test_styleguide_continuation_line_outdented(self):
-        pycodestyle.register_check(DummyChecker, ['Z701'])
-        lines = [
-            'def foo():\n',
-            '    pass\n',
-            '\n',
-            '\\\n',
-            '\n',
-            'def bar():\n',
-            '    pass\n',
-        ]
-
-        pep8style = pycodestyle.StyleGuide()
-        count_errors = pep8style.input_file('stdin', lines=lines)
-        self.assertEqual(count_errors, 2)
-        stdout = sys.stdout.getvalue()
-        expected = (
-            'stdin:6:1: '
-            'E122 continuation line missing indentation or outdented'
-        )
-        self.assertTrue(expected in stdout)
-        expected = 'stdin:6:1: E302 expected 2 blank lines, found 1'
-        self.assertTrue(expected in stdout)
-
-        # TODO: runner
-        # TODO: input_file
+        if sys.version_info < (3, 10):
+            expected = [
+                'stdin:2:5: E901 TokenError: EOF in multi-line string',
+                'stdin:2:26: E901 SyntaxError: EOF while scanning triple-quoted string literal',  # noqa: E501
+            ]
+        elif sys.version_info < (3, 12):
+            expected = [
+                'stdin:2:5: E901 TokenError: EOF in multi-line string',
+                'stdin:2:6: E901 SyntaxError: unterminated triple-quoted string literal (detected at line 2)',  # noqa: E501
+            ]
+        else:
+            expected = [
+                'stdin:2:6: E901 SyntaxError: unterminated triple-quoted string literal (detected at line 2)',  # noqa: E501
+                'stdin:2:6: E901 TokenError: EOF in multi-line string',
+            ]
+        self.assertEqual(stdout.splitlines(), expected)
 
     def test_styleguides_other_indent_size(self):
         pycodestyle.register_check(DummyChecker, ['Z701'])
openSUSE Build Service is sponsored by