def METHOD_NAME(self):
    with os_helper.temp_dir() as tmp_dir:
        # use TESTFN to get a pseudo-unique filename
        program_noeext = os_helper.TESTFN
        # Give the temporary program an ".exe" suffix for all.
        # It's needed on Windows and not harmful on other platforms.
        program = program_noeext + ".exe"
        filename = os.path.join(tmp_dir, program)
        with open(filename, "wb"):
            pass
        os.chmod(filename, stat.S_IXUSR)
        # test path parameter
        rv = find_executable(program, path=tmp_dir)
        self.assertEqual(rv, filename)
        if sys.platform == 'win32':
            # test without ".exe" extension
            rv = find_executable(program_noeext, path=tmp_dir)
            self.assertEqual(rv, filename)
        # test find in the current directory
        with os_helper.change_cwd(tmp_dir):
            rv = find_executable(program)
            self.assertEqual(rv, program)
        # test non-existent program
        dont_exist_program = "dontexist_" + program
        rv = find_executable(dont_exist_program , path=tmp_dir)
        self.assertIsNone(rv)
        # PATH='': no match, except in the current directory
        with os_helper.EnvironmentVarGuard() as env:
            env['PATH'] = ''
            with unittest.mock.patch('distutils.spawn.os.confstr',
                                     return_value=tmp_dir, create=True), \
                 unittest.mock.patch('distutils.spawn.os.defpath',
                                     tmp_dir):
                rv = find_executable(program)
                self.assertIsNone(rv)
                # look in current directory
                with os_helper.change_cwd(tmp_dir):
                    rv = find_executable(program)
                    self.assertEqual(rv, program)
        # PATH=':': explicitly looks in the current directory
        with os_helper.EnvironmentVarGuard() as env:
            env['PATH'] = os.pathsep
            with unittest.mock.patch('distutils.spawn.os.confstr',
                                     return_value='', create=True), \
                 unittest.mock.patch('distutils.spawn.os.defpath', ''):
                rv = find_executable(program)
                self.assertIsNone(rv)
                # look in current directory
                with os_helper.change_cwd(tmp_dir):
                    rv = find_executable(program)
                    self.assertEqual(rv, program)
        # missing PATH: test os.confstr("CS_PATH") and os.defpath
        with os_helper.EnvironmentVarGuard() as env:
            env.pop('PATH', None)
            # without confstr
            with unittest.mock.patch('distutils.spawn.os.confstr',
                                     side_effect=ValueError,
                                     create=True), \
                 unittest.mock.patch('distutils.spawn.os.defpath',
                                     tmp_dir):
                rv = find_executable(program)
                self.assertEqual(rv, filename)
            # with confstr
            with unittest.mock.patch('distutils.spawn.os.confstr',
                                     return_value=tmp_dir, create=True), \
                 unittest.mock.patch('distutils.spawn.os.defpath', ''):
                rv = find_executable(program)
                self.assertEqual(rv, filename)