code: def _do_single(self, filename):
      self.assertTrue(os.path.exists(filename))
      self.assertTrue(os.path.isfile(filename))
      self.assertTrue(os.access(filename, os.R_OK))
      self.assertTrue(os.path.exists(os.path.abspath(filename)))
      self.assertTrue(os.path.isfile(os.path.abspath(filename)))
      self.assertTrue(os.access(os.path.abspath(filename), os.R_OK))
      os.chmod(filename, 0o777)
      os.utime(filename, None)
      os.utime(filename, (time.time(), time.time()))
      # Copy/rename etc tests using the same filename
      self._do_copyish(filename, filename)
      # Filename should appear in glob output
      self.assertTrue(
          os.path.abspath(filename)
          == os.path.abspath(glob.glob(glob.escape(filename))[0])
      )
      # basename should appear in listdir.
      path, base = os.path.split(os.path.abspath(filename))
      file_list = os.listdir(path)
      # Normalize the unicode strings, as round-tripping the name via the OS
      # may return a different (but equivalent) value.
      base = unicodedata.normalize("NFD", base)
      file_list = [unicodedata.normalize("NFD", f) for f in file_list]
  
      self.assertIn(base, file_list)
  
file_path: cpython/Lib/test/test_unicode_file.py
imports: import os, glob, time, shutil
  import sys
  import unicodedata
  import unittest
  from test.support.os_helper import rmtree, change_cwd, TESTFN_UNICODE, TESTFN_UNENCODABLE, create_empty_file
label_desc: Use image node_id 1 for calling the TestUnicodeFiles obj's underlying member method code with example usage: obj._do_single(filename) without return types