Clone
1
run 2413 TEST commit 02dd629
ci-bot edited this page 2025-08-18 13:54:22 +00:00

Test Report

View CI Run 2413 | Commit 02dd629

🧪 Test Report

Generated on 2025-08-18 15:53:55 CEST

🧾 General Info

  • duration: 1.397437334060669
  • root: /workspace/tligui_y/slic
  • environment: {}

📋 Summary

  • Error: 7
  • Total: 7
  • Collected: 7

🔎 Tests

Error (7)
  • 📄 test_utils_dbusnotify.py

    Function: test_notify_create

    • Test 1

      📌 Setup phase

      duration:

      0.004251067992299795
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.0003444352187216282
      

      outcome:

      passed
      

    Function: test_notify_update

    • Test 2

      📌 Setup phase

      duration:

      0.0002047787420451641
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.00022171391174197197
      

      outcome:

      passed
      

    Function: test_get_server_info

    • Test 3

      📌 Setup phase

      duration:

      0.00018394412472844124
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.0002314755693078041
      

      outcome:

      passed
      

    Function: test_get_capabilities

    • Test 4

      📌 Setup phase

      duration:

      0.00018874090164899826
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.0002180039882659912
      

      outcome:

      passed
      

    Function: test_notify_and_close

    • Test 5

      📌 Setup phase

      duration:

      0.0001881709322333336
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.00021681608632206917
      

      outcome:

      passed
      

    Function: test_notify_invalid_value

    • Test 6

      📌 Setup phase

      duration:

      0.00023002317175269127
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.00021888269111514091
      

      outcome:

      passed
      

    Function: test_convert_dbus_strings

    • Test 7

      📌 Setup phase

      duration:

      0.00018321815878152847
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/subprocess.py
      lineno: 1720
      message: FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      

      traceback:

      -   path: tests/test_utils_dbusnotify.py
        lineno: 29
        message: None
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 858
        message: in __init__
      -   path: .pixi/envs/default/lib/python3.8/subprocess.py
        lineno: 1720
        message: FileNotFoundError
      

      longrepr:

      @pytest.fixture(scope="session", autouse=True)
          def mako_daemon():
              """Start mako in headless logger mode and ensure cleanup."""
              global _MAKO_PROC
      
              # Ensure old log removed
              if os.path.exists(_MAKO_LOGFILE):
                  os.remove(_MAKO_LOGFILE)
      
              # Launch mako with --output (no graphical deps, only logs)
      >       _MAKO_PROC = subprocess.Popen(
                  ["mako", f"--output={_MAKO_LOGFILE}"],
                  stdout=subprocess.PIPE,
                  stderr=subprocess.PIPE,
              )
      
      tests/test_utils_dbusnotify.py:29: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/subprocess.py:858: in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <subprocess.Popen object at 0x7fde42f2c610>
      args = ['mako', '--output=/tmp/mako-test.log'], executable = b'mako'
      preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
      startupinfo = None, creationflags = 0, shell = False, p2cread = -1
      p2cwrite = -1, c2pread = 12, c2pwrite = 13, errread = 14, errwrite = 15
      restore_signals = True, start_new_session = False
      
          def _execute_child(self, args, executable, preexec_fn, close_fds,
                             pass_fds, cwd, env,
                             startupinfo, creationflags, shell,
                             p2cread, p2cwrite,
                             c2pread, c2pwrite,
                             errread, errwrite,
                             restore_signals, start_new_session):
              """Execute program (POSIX version)"""
      
              if isinstance(args, (str, bytes)):
                  args = [args]
              elif isinstance(args, os.PathLike):
                  if shell:
                      raise TypeError('path-like args is not allowed when '
                                      'shell is true')
                  args = [args]
              else:
                  args = list(args)
      
              if shell:
                  # On Android the default shell is at '/system/bin/sh'.
                  unix_shell = ('/system/bin/sh' if
                            hasattr(sys, 'getandroidapilevel') else '/bin/sh')
                  args = [unix_shell, "-c"] + args
                  if executable:
                      args[0] = executable
      
              if executable is None:
                  executable = args[0]
      
              sys.audit("subprocess.Popen", executable, args, cwd, env)
      
              if (_USE_POSIX_SPAWN
                      and os.path.dirname(executable)
                      and preexec_fn is None
                      and not close_fds
                      and not pass_fds
                      and cwd is None
                      and (p2cread == -1 or p2cread > 2)
                      and (c2pwrite == -1 or c2pwrite > 2)
                      and (errwrite == -1 or errwrite > 2)
                      and not start_new_session):
                  self._posix_spawn(args, executable, env, restore_signals,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite)
                  return
      
              orig_executable = executable
      
              # For transferring possible exec failure from child to parent.
              # Data format: "exception name:hex errno:description"
              # Pickle is not used; it is complex and involves memory allocation.
              errpipe_read, errpipe_write = os.pipe()
              # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
              low_fds_to_close = []
              while errpipe_write < 3:
                  low_fds_to_close.append(errpipe_write)
                  errpipe_write = os.dup(errpipe_write)
              for low_fd in low_fds_to_close:
                  os.close(low_fd)
              try:
                  try:
                      # We must avoid complex work that could involve
                      # malloc or free in the child process to avoid
                      # potential deadlocks, thus we do all this here.
                      # and pass it to fork_exec()
      
                      if env is not None:
                          env_list = []
                          for k, v in env.items():
                              k = os.fsencode(k)
                              if b'=' in k:
                                  raise ValueError("illegal environment variable name")
                              env_list.append(k + b'=' + os.fsencode(v))
                      else:
                          env_list = None  # Use execv instead of execve.
                      executable = os.fsencode(executable)
                      if os.path.dirname(executable):
                          executable_list = (executable,)
                      else:
                          # This matches the behavior of os._execvpe().
                          executable_list = tuple(
                              os.path.join(os.fsencode(dir), executable)
                              for dir in os.get_exec_path(env))
                      fds_to_keep = set(pass_fds)
                      fds_to_keep.add(errpipe_write)
                      self.pid = _posixsubprocess.fork_exec(
                              args, executable_list,
                              close_fds, tuple(sorted(map(int, fds_to_keep))),
                              cwd, env_list,
                              p2cread, p2cwrite, c2pread, c2pwrite,
                              errread, errwrite,
                              errpipe_read, errpipe_write,
                              restore_signals, start_new_session, preexec_fn)
                      self._child_created = True
                  finally:
                      # be sure the FD is closed no matter what
                      os.close(errpipe_write)
      
                  self._close_pipe_fds(p2cread, p2cwrite,
                                       c2pread, c2pwrite,
                                       errread, errwrite)
      
                  # Wait for exec to fail or succeed; possibly raising an
                  # exception (limited in size)
                  errpipe_data = bytearray()
                  while True:
                      part = os.read(errpipe_read, 50000)
                      errpipe_data += part
                      if not part or len(errpipe_data) > 50000:
                          break
              finally:
                  # be sure the FD is closed no matter what
                  os.close(errpipe_read)
      
              if errpipe_data:
                  try:
                      pid, sts = os.waitpid(self.pid, 0)
                      if pid == self.pid:
                          self._handle_exitstatus(sts)
                      else:
                          self.returncode = sys.maxsize
                  except ChildProcessError:
                      pass
      
                  try:
                      exception_name, hex_errno, err_msg = (
                              errpipe_data.split(b':', 2))
                      # The encoding here should match the encoding
                      # written in by the subprocess implementations
                      # like _posixsubprocess
                      err_msg = err_msg.decode()
                  except ValueError:
                      exception_name = b'SubprocessError'
                      hex_errno = b'0'
                      err_msg = 'Bad exception data from child: {!r}'.format(
                                    bytes(errpipe_data))
                  child_exception_type = getattr(
                          builtins, exception_name.decode('ascii'),
                          SubprocessError)
                  if issubclass(child_exception_type, OSError) and hex_errno:
                      errno_num = int(hex_errno, 16)
                      child_exec_never_called = (err_msg == "noexec")
                      if child_exec_never_called:
                          err_msg = ""
                          # The error must be from chdir(cwd).
                          err_filename = cwd
                      else:
                          err_filename = orig_executable
                      if errno_num != 0:
                          err_msg = os.strerror(errno_num)
      >               raise child_exception_type(errno_num, err_msg, err_filename)
      E               FileNotFoundError: [Errno 2] No such file or directory: 'mako'
      
      .pixi/envs/default/lib/python3.8/subprocess.py:1720: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.00028424011543393135
      

      outcome:

      passed
      

📚 Collected files

(1 tests)
    • Outcome: passed
    • result:
    -   nodeid: tests/test_utils_dbusnotify.py
      type: Module
    
tests (2 tests)
  • tests/test_utils_dbusnotify.py
    • Outcome: passed
    • result:
    -   nodeid: tests/test_utils_dbusnotify.py::DBusTestCase
      type: UnitTestCase
    -   nodeid: tests/test_utils_dbusnotify.py::test_notify_create
      type: Function
      lineno: 74
    -   nodeid: tests/test_utils_dbusnotify.py::test_notify_update
      type: Function
      lineno: 88
    -   nodeid: tests/test_utils_dbusnotify.py::test_get_server_info
      type: Function
      lineno: 101
    -   nodeid: tests/test_utils_dbusnotify.py::test_get_capabilities
      type: Function
      lineno: 112
    -   nodeid: tests/test_utils_dbusnotify.py::test_notify_and_close
      type: Function
      lineno: 127
    -   nodeid: tests/test_utils_dbusnotify.py::test_notify_invalid_value
      type: Function
      lineno: 138
    -   nodeid: tests/test_utils_dbusnotify.py::test_convert_dbus_strings
      type: Function
      lineno: 144
    
    • tests/test_utils_dbusnotify.py::DBusTestCase
      • Outcome: passed
      • result:
      []