1 # Ridiculously simple test of the os.startfile function for Windows. 2 # 3 # empty.vbs is an empty file (except for a comment), which does 4 # nothing when run with cscript or wscript. 5 # 6 # A possible improvement would be to have empty.vbs do something that 7 # we can detect here, to make sure that not only the os.startfile() 8 # call succeeded, but also the the script actually has run. 9 10 import unittest 11 from test import test_support 12 import os 13 from os import path 14 from time import sleep 15 16 startfile = test_support.get_attribute(os, 'startfile') 17 18 19 class TestCase(unittest.TestCase): 20 def test_nonexisting(self): 21 self.assertRaises(OSError, startfile, "nonexisting.vbs") 22 23 def test_nonexisting_u(self): 24 self.assertRaises(OSError, startfile, u"nonexisting.vbs") 25 26 def test_empty(self): 27 empty = path.join(path.dirname(__file__), "empty.vbs") 28 startfile(empty) 29 startfile(empty, "open") 30 # Give the child process some time to exit before we finish. 31 # Otherwise the cleanup code will not be able to delete the cwd, 32 # because it is still in use. 33 sleep(0.1) 34 35 def test_empty_u(self): 36 empty = path.join(path.dirname(__file__), "empty.vbs") 37 startfile(unicode(empty, "mbcs")) 38 startfile(unicode(empty, "mbcs"), "open") 39 sleep(0.1) 40 41 def test_main(): 42 test_support.run_unittest(TestCase) 43 44 if __name__=="__main__": 45 test_main() 46