def _run_test_against_dev_server(self, request_logic, assert_logic=None): '''This method provides a template for writing integration tests that requires a development server being active. It accepts a request logic (code that actually do the http request) and an assert logic for making sure code is correct.''' assert_logic = assert_logic or self._check_server_started server = DevServer() def start_server(): server.start() def stop_server(): try: while not server.started: time.sleep(0.01) request_logic(server) self.assertTrue(server.started) finally: server.stop() thread_start = threading.Thread(target=start_server) thread_start.start() thread_stop = threading.Thread(target=stop_server) thread_stop.start() thread_stop.join() self._check_server_started(server) assert_logic(server)
def init(self): self._settings_facade = Mock() self._settings_facade.get = self._get_server_key self._settings_facade_cls = Mock(return_value=self._settings_facade) self._server = DevServer(self._settings_facade_cls)