From 1643810cec254c9c7d78614c4ffedb8ac7cc77c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 4 Oct 2025 15:52:07 +0200 Subject: [PATCH] Fix BlackboxTestCase to respect Python venv path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix BlackboxTestCase to include `sysconfig.get_path("scripts")` in binary paths, which corresponds to the binary directory used in the current virtual environment. This ensures that the tests use the correct dulwich executables rather than the (possibly older) version installed to `/usr/bin`. The test previously attempted to reconstruct the `bin` path relatively to the test file. However, that logic stopped working correctly when tests were moved out of the package in 245331a60d743b7b73ba3a8b15e6f4648273369f. I suspect that the problem may have went unnoticed for a time, since the tests are skipped when the binaries can't be found. While it is technically possible to fix the reconstruction logic to use the `dulwich` module path, using `sysconfig` ensures we are using the correct path rather than guessing. Signed-off-by: Michał Górny --- tests/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/__init__.py b/tests/__init__.py index fb70aa5b32..d7cbf8a6ea 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -34,6 +34,7 @@ import shutil import subprocess import sys +import sysconfig import tempfile # If Python itself provides an exception, use that @@ -70,7 +71,7 @@ class BlackboxTestCase(TestCase): # TODO(jelmer): Include more possible binary paths. bin_directories: ClassVar[list[str]] = [ - os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "bin")), + sysconfig.get_path("scripts"), "/usr/bin", "/usr/local/bin", ]