Best Python code snippet using autotest_python
test_spawn.py
Source:test_spawn.py
...34 exe = os.path.join(tmpdir, 'foo.bat')35 self.write_file(exe, 'exit 0')36 os.chmod(exe, 0o777)37 spawn([exe]) # should work without any error38 def test_find_executable(self):39 with test_support.temp_dir() as tmp_dir:40 # use TESTFN to get a pseudo-unique filename41 program_noeext = test_support.TESTFN42 # Give the temporary program an ".exe" suffix for all.43 # It's needed on Windows and not harmful on other platforms.44 program = program_noeext + ".exe"45 filename = os.path.join(tmp_dir, program)46 with open(filename, "wb"):47 pass48 os.chmod(filename, stat.S_IXUSR)49 # test path parameter50 rv = find_executable(program, path=tmp_dir)51 self.assertEqual(rv, filename)52 if sys.platform == 'win32':53 # test without ".exe" extension54 rv = find_executable(program_noeext, path=tmp_dir)55 self.assertEqual(rv, filename)56 # test find in the current directory57 with test_support.change_cwd(tmp_dir):58 rv = find_executable(program)59 self.assertEqual(rv, program)60 # test non-existent program61 dont_exist_program = "dontexist_" + program62 rv = find_executable(dont_exist_program , path=tmp_dir)63 self.assertIsNone(rv)64 # PATH='': no match, except in the current directory65 with test_support.EnvironmentVarGuard() as env:66 env['PATH'] = ''67 with unittest.mock.patch('distutils.spawn.os.confstr',68 return_value=tmp_dir, create=True), \69 unittest.mock.patch('distutils.spawn.os.defpath',70 tmp_dir):71 rv = find_executable(program)72 self.assertIsNone(rv)73 # look in current directory74 with test_support.change_cwd(tmp_dir):75 rv = find_executable(program)76 self.assertEqual(rv, program)77 # PATH=':': explicitly looks in the current directory78 with test_support.EnvironmentVarGuard() as env:79 env['PATH'] = os.pathsep80 with unittest.mock.patch('distutils.spawn.os.confstr',81 return_value='', create=True), \82 unittest.mock.patch('distutils.spawn.os.defpath', ''):83 rv = find_executable(program)84 self.assertIsNone(rv)85 # look in current directory86 with test_support.change_cwd(tmp_dir):87 rv = find_executable(program)88 self.assertEqual(rv, program)89 # missing PATH: test os.confstr("CS_PATH") and os.defpath90 with test_support.EnvironmentVarGuard() as env:91 env.pop('PATH', None)92 # without confstr93 with unittest.mock.patch('distutils.spawn.os.confstr',94 side_effect=ValueError,95 create=True), \96 unittest.mock.patch('distutils.spawn.os.defpath',97 tmp_dir):98 rv = find_executable(program)99 self.assertEqual(rv, filename)100 # with confstr101 with unittest.mock.patch('distutils.spawn.os.confstr',102 return_value=tmp_dir, create=True), \103 unittest.mock.patch('distutils.spawn.os.defpath', ''):104 rv = find_executable(program)105 self.assertEqual(rv, filename)106 def test_spawn_missing_exe(self):107 with self.assertRaises(DistutilsExecError) as ctx:108 spawn(['does-not-exist'])109 self.assertIn("command 'does-not-exist' failed", str(ctx.exception))110def test_suite():111 return unittest.makeSuite(SpawnTestCase)112if __name__ == "__main__":...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!