blob: 9cddb5f7004a7a12b92670cfeb635ed182c3f28d [file] [log] [blame]
Fred Drake38c2ef02001-07-17 20:52:51 +00001# As a test suite for the os module, this is woefully inadequate, but this
2# does add tests for a few functions which have been determined to be more
3# more portable than they had been thought to be.
4
5import os
6import unittest
Jeremy Hyltona7fc21b2001-08-20 20:10:01 +00007import warnings
Fred Drake38c2ef02001-07-17 20:52:51 +00008
Barry Warsaw60f01882001-08-22 19:24:42 +00009warnings.filterwarnings("ignore", "tempnam", RuntimeWarning, __name__)
10warnings.filterwarnings("ignore", "tmpnam", RuntimeWarning, __name__)
11
Fred Drake38c2ef02001-07-17 20:52:51 +000012from test_support import TESTFN, run_unittest
13
14
15class TemporaryFileTests(unittest.TestCase):
16 def setUp(self):
17 self.files = []
18 os.mkdir(TESTFN)
19
20 def tearDown(self):
21 for name in self.files:
22 os.unlink(name)
23 os.rmdir(TESTFN)
24
25 def check_tempfile(self, name):
26 # make sure it doesn't already exist:
27 self.failIf(os.path.exists(name),
28 "file already exists for temporary file")
29 # make sure we can create the file
30 open(name, "w")
31 self.files.append(name)
32
33 def test_tempnam(self):
34 if not hasattr(os, "tempnam"):
35 return
Jeremy Hyltona7fc21b2001-08-20 20:10:01 +000036 warnings.filterwarnings("ignore", "tempnam", RuntimeWarning,
37 "test_os")
Fred Drake38c2ef02001-07-17 20:52:51 +000038 self.check_tempfile(os.tempnam())
39
40 name = os.tempnam(TESTFN)
Fred Drake38c2ef02001-07-17 20:52:51 +000041 self.check_tempfile(name)
42
43 name = os.tempnam(TESTFN, "pfx")
Fred Drake38c2ef02001-07-17 20:52:51 +000044 self.assert_(os.path.basename(name)[:3] == "pfx")
45 self.check_tempfile(name)
46
47 def test_tmpfile(self):
48 if not hasattr(os, "tmpfile"):
49 return
50 fp = os.tmpfile()
51 fp.write("foobar")
52 fp.seek(0,0)
53 s = fp.read()
54 fp.close()
55 self.assert_(s == "foobar")
56
57 def test_tmpnam(self):
58 if not hasattr(os, "tmpnam"):
59 return
Jeremy Hyltona7fc21b2001-08-20 20:10:01 +000060 warnings.filterwarnings("ignore", "tmpnam", RuntimeWarning,
61 "test_os")
Fred Drake38c2ef02001-07-17 20:52:51 +000062 self.check_tempfile(os.tmpnam())
Tim Peters87cc0c32001-07-21 01:41:30 +000063
Fred Drake38c2ef02001-07-17 20:52:51 +000064
65
66run_unittest(TemporaryFileTests)