https://gitlab.gnome.org/GNOME/gobject-introspection/-/work_items/575#note_2838785 --- a/tests/scanner/test_ccompiler.py 2026-08-17 05:31:19.341878650 +0000 +++ b/tests/scanner/test_ccompiler.py 2026-08-17 05:45:37.094350170 +0000 @@ -82,7 +82,9 @@ except ImportError as e: raise unittest.SkipTest(e) - with patch.object(distutils.ccompiler.CCompiler, 'spawn') as spawn: + # setuptools >= 84 replaced spawn() with call() -> subprocess.check_call() + with patch.object(distutils.ccompiler.CCompiler, 'spawn') as spawn, \ + patch('subprocess.check_call') as check_call: with Environ(environ): cc = CCompiler(compiler_name=compiler_name) # Avoid check if target is newer from source. @@ -90,8 +92,11 @@ # Don't actually do anything. cc.compiler.dry_run = True cc.compile(pkg_config_cflags, cpp_includes, [source], init_sections) - self.assertEqual(1, spawn.call_count) - args, kwargs = spawn.call_args + if spawn.call_count: + args, kwargs = spawn.call_args + return args[0] + self.assertEqual(1, check_call.call_count) + args, kwargs = check_call.call_args return args[0] def preprocess_args(self, environ={}, compiler_name=None, @@ -103,7 +108,9 @@ except ImportError as e: raise unittest.SkipTest(e) - with patch.object(distutils.ccompiler.CCompiler, 'spawn') as spawn: + # setuptools >= 84 replaced spawn() with call() -> subprocess.check_call() + with patch.object(distutils.ccompiler.CCompiler, 'spawn') as spawn, \ + patch('subprocess.check_call') as check_call: with Environ(environ): cc = CCompiler(compiler_name=compiler_name) # Avoid check if target is newer from source. @@ -111,8 +118,11 @@ # Don't actually do anything. cc.compiler.dry_run = True cc.preprocess(source, output, cpp_options) - self.assertEqual(1, spawn.call_count) - args, kwargs = spawn.call_args + if spawn.call_count: + args, kwargs = spawn.call_args + return args[0] + self.assertEqual(1, check_call.call_count) + args, kwargs = check_call.call_args return args[0] @unittest.skip("Currently a Python build time compiler is used as the default.")