code: def _handle_archive(archive, command, verbosity=0, interactive=True,
                      program=None, format=None, compression=None):
      
      if format is None:
          format, compression = get_archive_format(archive)
      check_archive_format(format, compression)
      if command not in ('list', 'test'):
          raise util.PatoolError("invalid archive command `%s'" % command)
      program = find_archive_program(format, command, program=program)
      check_program_compression(archive, command, program, compression)
      get_archive_cmdlist = get_archive_cmdlist_func(program, command, format)
      # prepare keyword arguments for command list
      cmdlist = get_archive_cmdlist(archive, compression, program, verbosity, interactive)
      if cmdlist:
          # an empty command list means the get_archive_cmdlist() function
          # already handled the command (eg. when it's a builtin Python
          # function)
          run_archive_cmdlist(cmdlist, verbosity=verbosity)
docs: Test and list archives.