diff --git a/irctest/basecontrollers.py b/irctest/basecontrollers.py index 6bf0494..0833b0f 100644 --- a/irctest/basecontrollers.py +++ b/irctest/basecontrollers.py @@ -69,11 +69,7 @@ class _BaseController: """Terminates the controlled process, waits for it to exit, and eventually kills it.""" assert self.proc - self.proc.terminate() - try: - self.proc.wait(5) - except subprocess.TimeoutExpired: - self.proc.kill() + self.proc.kill() self.proc = None def kill(self) -> None: @@ -98,13 +94,6 @@ class DirectoryBasedController(_BaseController): if self.directory: shutil.rmtree(self.directory) - def terminate(self) -> None: - """Stops the process gracefully, and does not clean its config.""" - assert self.proc - self.proc.terminate() - self.proc.wait() - self.proc = None - def open_file(self, name: str, mode: str = "a") -> IO: """Open a file in the configuration directory.""" assert self.directory @@ -182,7 +171,7 @@ class BaseServerController(_BaseController): port_open = False port: int hostname: str - services_controller: BaseServicesController + services_controller: Optional[BaseServicesController] = None extban_mute_char: Optional[str] = None """Character used for the 'mute' extban""" @@ -205,7 +194,7 @@ class BaseServerController(_BaseController): username: str, password: Optional[str] = None, ) -> None: - if self.services_controller: + if self.services_controller is not None: self.services_controller.registerUser(case, username, password) else: raise NotImplementedByController("account registration") @@ -232,8 +221,16 @@ class BaseServerController(_BaseController): continue def wait_for_services(self) -> None: + assert self.services_controller is not None self.services_controller.wait_for_services() + def kill(self) -> None: + """Calls `kill_proc` and cleans the configuration.""" + if self.services_controller is not None: + self.services_controller.kill() + self.services_controller = None + super().kill() + class BaseServicesController(_BaseController): def __init__( diff --git a/irctest/client_tests/test_tls.py b/irctest/client_tests/test_tls.py index 6599795..7e61ed3 100644 --- a/irctest/client_tests/test_tls.py +++ b/irctest/client_tests/test_tls.py @@ -186,7 +186,7 @@ class StsTestCase(cases.BaseClientTestCase, cases.OptionalityHelper): self.acceptClient() # Kill the client - self.controller.terminate() + self.controller.kill() # Run the client, still configured to connect to the insecure server self.controller.run(