docs: def _can_read(test_dir):
      """
      returns ((unreadable_dirs), (unreadable_files))
      """
      unreadable_dirs = []
      unreadable_files = []
      for dirpath, dirnames, filenames in os.walk(test_dir):
          for dn in dirnames:
              if not os.access(os.path.join(dirpath, dn), os.R_OK):
                  unreadable_dirs.append(os.path.join(dirpath, dn))
          for fn in filenames:
              if not os.access(os.path.join(dirpath, fn), os.R_OK):
                  unreadable_files.append(os.path.join(dirpath, fn))
      return (tuple(unreadable_dirs), tuple(unreadable_files))