def init(self): if test_command == 'child_error_during_init': #Pretend we were actually doing something FunkyWebServer.parse_args_and_setup_logging() logging.info("Child about to fail") raise ValueError('I was told to fail') elif test_command == 'child_freeze_during_init': FunkyWebServer.parse_args_and_setup_logging() hold_gil(10 * 60) self.server = FunkyWebServer() signal.signal(signal.SIGINT, self.signal_handler)
def handle_sys_err_line(self, child_index, line): logging.info("SYSERR: %d: %s", child_index+1, line.strip()) def get_child_process_cmd(self, child_number): if self.override_command_line: return self.override_command_line return super(ProcessFamilyForTests, self).get_child_process_cmd(child_number) + [ '--process_number', str(child_number+1)] if __name__ == '__main__': logging.basicConfig(level=logging.INFO) STARTUP_TIMEOUT = int(get_env("STARTUP_TIMEOUT", "") or "10") logging.info("Starting") try: try: server = FunkyWebServer() server_thread = None family = ProcessFamilyForTests(number_of_child_processes=server.num_children) server.family = family try: try: family.start(timeout=STARTUP_TIMEOUT) server_thread = threading.Thread(target=server.run) server_thread.start() while server_thread.is_alive(): server_thread.join(1) except KeyboardInterrupt: logging.info("Stopping...") server.stop() finally: if server_thread and server_thread.is_alive():