]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-92886: Replace assertion statements in `handlers.BaseHandler` to support running...
authorJack Hindmarch <1750152+jackh-ncl@users.noreply.github.com>
Wed, 19 Oct 2022 10:38:59 +0000 (11:38 +0100)
committerGitHub <noreply@github.com>
Wed, 19 Oct 2022 10:38:59 +0000 (11:38 +0100)
Lib/wsgiref/handlers.py
Misc/NEWS.d/next/Library/2022-05-25-22-09-38.gh-issue-92886.ylwDSc.rst [new file with mode: 0644]

index 6623b700537cf930397ec4d43fff149dec0014e4..cd0916dc5553fbc00f2835be61930f5f21746b72 100644 (file)
@@ -237,9 +237,7 @@ class BaseHandler:
         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 @@ class BaseHandler:
 
         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 (file)
index 0000000..7854381
--- /dev/null
@@ -0,0 +1 @@
+Replace ``assert`` statements with ``raise AssertionError()`` in :class:`~wsgiref.BaseHandler` so that the tested behaviour is maintained running with optimizations ``(-O)``.