def setUp(self): """Sets up mox and a ticket / registration objects.""" mox.MoxTestBase.setUp(self) self.devices_resource = {} self.fail_control = fail_control.FailControl() self.oauth = oauth.OAuth(self.fail_control) self.commands = commands.Commands(self.oauth, self.fail_control) self.devices = devices.Devices( resource_delegate.ResourceDelegate(self.devices_resource), self.commands, self.oauth, self.fail_control)
def start_server(generation): """Starts the cherrypy server and blocks. @param generation: string unique to this instance of the fake device server. """ fail_control_handler = fail_control.FailControl() cherrypy.tree.mount( fail_control_handler, '/' + fail_control.FAIL_CONTROL_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) oauth_handler = oauth.OAuth(fail_control_handler) commands_handler = commands.Commands(oauth_handler, fail_control_handler) cherrypy.tree.mount( commands_handler, '/' + commands.COMMANDS_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) devices_resource = resource_delegate.ResourceDelegate({}) # TODO(wiley): We need to validate device commands. devices_handler = devices.Devices(devices_resource, commands_handler, oauth_handler, fail_control_handler) cherrypy.tree.mount( devices_handler, '/' + devices.DEVICES_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) tickets = resource_delegate.ResourceDelegate({}) registration_tickets_handler = registration_tickets.RegistrationTickets( tickets, devices_handler, fail_control_handler) cherrypy.tree.mount( registration_tickets_handler, '/' + registration_tickets.REGISTRATION_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) cherrypy.tree.mount( oauth_handler, '/' + oauth.OAUTH_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) cherrypy.tree.mount( meta_handler.MetaHandler(generation), '/' + meta_handler.META_HANDLER_PATH, {'/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher() }}) # Don't parse POST for params. cherrypy.config.update({'global': {'request.process_request_body': False}}) cherrypy.engine.start()