File do-not-raise-exceptions-on-unknown-status-codes.patch of Package python-tornado.43030

From beb78f0fa5cd4ecb47274d15ff0b5a32526b18df Mon Sep 17 00:00:00 2001
From: Andrey Sumin <an.sumin@hh.ru>
Date: Fri, 24 Mar 2017 17:03:27 +0300
Subject: [PATCH] do not raise exceptions on unknown status codes

---
 tornado/test/web_test.py | 10 +++++++---
 tornado/web.py           | 11 ++---------
 2 files changed, 9 insertions(+), 12 deletions(-)

Index: tornado-4.5.3/tornado/test/web_test.py
===================================================================
--- tornado-4.5.3.orig/tornado/test/web_test.py
+++ tornado-4.5.3/tornado/test/web_test.py
@@ -918,6 +918,10 @@ class ErrorResponseTest(WebTestCase):
             self.assertEqual(response.code, 503)
             self.assertTrue(b"503: Service Unavailable" in response.body)
 
+            response = self.fetch("/default?status=435")
+            self.assertEqual(response.code, 435)
+            self.assertTrue(b"435: Unknown" in response.body)
+
     def test_write_error(self):
         with ExpectLog(app_log, "Uncaught exception"):
             response = self.fetch("/write_error")
Index: tornado-4.5.3/tornado/web.py
===================================================================
--- tornado-4.5.3.orig/tornado/web.py
+++ tornado-4.5.3/tornado/web.py
@@ -333,10 +333,7 @@ class RequestHandler(object):
                 reason = "Unknown"
             self._reason = escape.native_str(reason)
         else:
-            try:
-                self._reason = httputil.responses[status_code]
-            except KeyError:
-                raise ValueError("unknown status code %d" % status_code)
+            self._reason = httputil.responses.get(status_code, "Unknown")
 
     def get_status(self):
         """Returns the status code for our response."""
@@ -1585,11 +1582,7 @@ class RequestHandler(object):
             # send a response.
             return
         if isinstance(e, HTTPError):
-            if e.status_code not in httputil.responses and not e.reason:
-                gen_log.error("Bad HTTP status code: %d", e.status_code)
-                self.send_error(500, exc_info=sys.exc_info())
-            else:
-                self.send_error(e.status_code, exc_info=sys.exc_info())
+            self.send_error(e.status_code, exc_info=sys.exc_info())
         else:
             self.send_error(500, exc_info=sys.exc_info())
 
openSUSE Build Service is sponsored by