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()
|
---|