[Python-checkins] gh-92886: Replace assertion statements in `handlers.BaseHandler` to support running with optimizations (`-O`) (GH-93231)

iritkatriel webhook-mailer at python.org
Wed Oct 19 06:39:05 EDT 2022


https://github.com/python/cpython/commit/b6e59d76c0e1214ca2c927be35f165ecd1f763df
commit: b6e59d76c0e1214ca2c927be35f165ecd1f763df
branch: main
author: Jack Hindmarch <1750152+jackh-ncl at users.noreply.github.com>
committer: iritkatriel <1055913+iritkatriel at users.noreply.github.com>
date: 2022-10-19T11:38:59+01:00
summary:

gh-92886: Replace assertion statements in `handlers.BaseHandler` to support running with optimizations (`-O`) (GH-93231)

files:
A Misc/NEWS.d/next/Library/2022-05-25-22-09-38.gh-issue-92886.ylwDSc.rst
M Lib/wsgiref/handlers.py

diff --git a/Lib/wsgiref/handlers.py b/Lib/wsgiref/handlers.py
index 6623b700537c..cd0916dc5553 100644
--- a/Lib/wsgiref/handlers.py
+++ b/Lib/wsgiref/handlers.py
@@ -237,9 +237,7 @@ def start_response(self, status, headers,exc_info=None):
         self.status = status
         self.headers = self.headers_class(headers)
         status = self._convert_string_type(status, "Status")
-        assert len(status)>=4,"Status must be at least 4 characters"
-        assert status[:3].isdigit(), "Status message must begin w/3-digit code"
-        assert status[3]==" ", "Status message must have a space after code"
+        self._validate_status(status)
 
         if __debug__:
             for name, val in headers:
@@ -250,6 +248,14 @@ def start_response(self, status, headers,exc_info=None):
 
         return self.write
 
+    def _validate_status(self, status):
+        if len(status) < 4:
+            raise AssertionError("Status must be at least 4 characters")
+        if not status[:3].isdigit():
+            raise AssertionError("Status message must begin w/3-digit code")
+        if status[3] != " ":
+            raise AssertionError("Status message must have a space after code")
+
     def _convert_string_type(self, value, title):
         """Convert/check value type."""
         if type(value) is str:
diff --git a/Misc/NEWS.d/next/Library/2022-05-25-22-09-38.gh-issue-92886.ylwDSc.rst b/Misc/NEWS.d/next/Library/2022-05-25-22-09-38.gh-issue-92886.ylwDSc.rst
new file mode 100644
index 000000000000..7854381de30f
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-05-25-22-09-38.gh-issue-92886.ylwDSc.rst
@@ -0,0 +1 @@
+Replace ``assert`` statements with ``raise AssertionError()`` in :class:`~wsgiref.BaseHandler` so that the tested behaviour is maintained running with optimizations ``(-O)``.



More information about the Python-checkins mailing list