nebraska: Move NebraskaHandler into NebraskaServer
This is a handle that is used only by the NebraskaServer, but it is
currently dangling in the module. Moved it there.
BUG=chromium:920404
TEST=unittest
Change-Id: I6d498b22d4b651713df62727214a9900b6450500
Reviewed-on: https://chromium-review.googlesource.com/1521151
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Xiaochu Liu <xiaochu@chromium.org>
diff --git a/nebraska/nebraska.py b/nebraska/nebraska.py
index d96c458..54367ab 100755
--- a/nebraska/nebraska.py
+++ b/nebraska/nebraska.py
@@ -668,29 +668,6 @@
self._install_payloads_address).GetXMLString()
-class NebraskaHandler(BaseHTTPRequestHandler):
- """HTTP request handler for Omaha requests."""
-
- def do_POST(self):
- """Responds to XML-formatted Omaha requests."""
- request_len = int(self.headers.getheader('content-length'))
- request = self.rfile.read(request_len)
- logging.debug("Received request: %s", request)
-
- try:
- response = self.server.owner.nebraska.GetResponseToRequest(request)
- except Exception as err:
- logging.error("Failed to handle request (%s)", str(err))
- traceback.print_exc()
- self.send_error(500, "Failed to handle incoming request")
- return
-
- self.send_response(200)
- self.send_header('Content-Type', 'application/xml')
- self.end_headers()
- self.wfile.write(response)
-
-
class NebraskaServer(object):
"""A simple Omaha server instance.
@@ -713,9 +690,32 @@
self._server_thread = None
self.nebraska = nebraska
+ class NebraskaHandler(BaseHTTPRequestHandler):
+ """HTTP request handler for Omaha requests."""
+
+ def do_POST(self):
+ """Responds to XML-formatted Omaha requests."""
+ request_len = int(self.headers.getheader('content-length'))
+ request = self.rfile.read(request_len)
+ logging.debug("Received request: %s", request)
+
+ try:
+ response = self.server.owner.nebraska.GetResponseToRequest(request)
+ except Exception as err:
+ logging.error("Failed to handle request (%s)", str(err))
+ traceback.print_exc()
+ self.send_error(500, "Failed to handle incoming request")
+ return
+
+ self.send_response(200)
+ self.send_header('Content-Type', 'application/xml')
+ self.end_headers()
+ self.wfile.write(response)
+
def Start(self):
"""Starts a mock Omaha HTTP server."""
- self._httpd = HTTPServer(('', self.GetPort()), NebraskaHandler)
+ self._httpd = HTTPServer(('', self.GetPort()),
+ NebraskaServer.NebraskaHandler)
self._port = self._httpd.server_port
self._httpd.owner = self
self._server_thread = threading.Thread(target=self._httpd.serve_forever)
diff --git a/nebraska/nebraska_unittest.py b/nebraska/nebraska_unittest.py
index 24e6d67..884446f 100755
--- a/nebraska/nebraska_unittest.py
+++ b/nebraska/nebraska_unittest.py
@@ -18,7 +18,7 @@
_UPDATE_DIR = "test_update_dir"
_PAYLOAD_ADDRESS = "111.222.212:2357"
-class MockNebraskaHandler(nebraska.NebraskaHandler):
+class MockNebraskaHandler(nebraska.NebraskaServer.NebraskaHandler):
"""Subclass NebraskaHandler to facilitate testing.
Because of the complexity of the socket handling super class init functions,
@@ -111,7 +111,7 @@
server.Start()
server_mock.assert_called_once_with(
- ('', _NEBRASKA_PORT), nebraska.NebraskaHandler)
+ ('', _NEBRASKA_PORT), nebraska.NebraskaServer.NebraskaHandler)
# pylint: disable=protected-access
thread_mock.assert_has_calls((