From 3239450dc027e124b9e7e84d8a1f365c4fea0989 Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Mon, 21 Jul 2025 12:36:39 +0200 Subject: [PATCH] pytest: protect test execution of sockd in try block --- tests/http/testenv/env.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/tests/http/testenv/env.py b/tests/http/testenv/env.py index 9de44caa08..6142440756 100644 --- a/tests/http/testenv/env.py +++ b/tests/http/testenv/env.py @@ -225,6 +225,8 @@ class EnvConfig: self.caddy = None self.vsftpd = self.config['vsftpd']['vsftpd'] + if self.vsftpd == '': + self.vsftpd = None self._vsftpd_version = None if self.vsftpd is not None: try: @@ -255,23 +257,27 @@ class EnvConfig: self.vsftpd = None self.sockd = self.config['sockd']['sockd'] + if self.sockd == '': + self.sockd = None self._sockd_version = None if self.sockd is not None: - p = subprocess.run(args=[self.sockd, '-v'], - capture_output=True, text=True) - assert p.returncode == 0 - if p.returncode != 0: - # not a working vsftpd + try: + p = subprocess.run(args=[self.sockd, '-v'], + capture_output=True, text=True) + assert p.returncode == 0 + if p.returncode != 0: + # not a working vsftpd + self.sockd = None + m = re.match(r'^Dante v(\d+\.\d+\.\d+).*', p.stdout) + if not m: + m = re.match(r'^Dante v(\d+\.\d+\.\d+).*', p.stderr) + if m: + self._sockd_version = m.group(1) + else: + self.sockd = None + raise Exception(f'Unable to determine sockd version from: {p.stderr}') + except Exception: self.sockd = None - m = re.match(r'^Dante v(\d+\.\d+\.\d+).*', p.stdout) - if not m: - m = re.match(r'^Dante v(\d+\.\d+\.\d+).*', p.stderr) - if m: - self._sockd_version = m.group(1) - else: - self.sockd = None - raise Exception(f'Unable to determine sockd version from: {p.stderr}') - self._tcpdump = shutil.which('tcpdump')