Issue #5788: `datetime.timedelta` objects get a new `total_seconds()` method returning
[python.git] / Lib / test / test_genericpath.py
blobc8f359d8ed6099e4cd226832d7a804def8f8086a
1 import unittest
2 from test import test_support
3 import os
4 import genericpath
6 class AllCommonTest(unittest.TestCase):
8 def assertIs(self, a, b):
9 self.assertTrue(a is b)
11 def test_commonprefix(self):
12 self.assertEqual(
13 genericpath.commonprefix([]),
16 self.assertEqual(
17 genericpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]),
18 "/home/swen"
20 self.assertEqual(
21 genericpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]),
22 "/home/swen/"
24 self.assertEqual(
25 genericpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]),
26 "/home/swen/spam"
29 def test_getsize(self):
30 f = open(test_support.TESTFN, "wb")
31 try:
32 f.write("foo")
33 f.close()
34 self.assertEqual(genericpath.getsize(test_support.TESTFN), 3)
35 finally:
36 if not f.closed:
37 f.close()
38 os.remove(test_support.TESTFN)
40 def test_time(self):
41 f = open(test_support.TESTFN, "wb")
42 try:
43 f.write("foo")
44 f.close()
45 f = open(test_support.TESTFN, "ab")
46 f.write("bar")
47 f.close()
48 f = open(test_support.TESTFN, "rb")
49 d = f.read()
50 f.close()
51 self.assertEqual(d, "foobar")
53 self.assertTrue(
54 genericpath.getctime(test_support.TESTFN) <=
55 genericpath.getmtime(test_support.TESTFN)
57 finally:
58 if not f.closed:
59 f.close()
60 os.remove(test_support.TESTFN)
62 def test_exists(self):
63 self.assertIs(genericpath.exists(test_support.TESTFN), False)
64 f = open(test_support.TESTFN, "wb")
65 try:
66 f.write("foo")
67 f.close()
68 self.assertIs(genericpath.exists(test_support.TESTFN), True)
69 finally:
70 if not f.close():
71 f.close()
72 try:
73 os.remove(test_support.TESTFN)
74 except os.error:
75 pass
77 self.assertRaises(TypeError, genericpath.exists)
79 def test_isdir(self):
80 self.assertIs(genericpath.isdir(test_support.TESTFN), False)
81 f = open(test_support.TESTFN, "wb")
82 try:
83 f.write("foo")
84 f.close()
85 self.assertIs(genericpath.isdir(test_support.TESTFN), False)
86 os.remove(test_support.TESTFN)
87 os.mkdir(test_support.TESTFN)
88 self.assertIs(genericpath.isdir(test_support.TESTFN), True)
89 os.rmdir(test_support.TESTFN)
90 finally:
91 if not f.close():
92 f.close()
93 try:
94 os.remove(test_support.TESTFN)
95 except os.error:
96 pass
97 try:
98 os.rmdir(test_support.TESTFN)
99 except os.error:
100 pass
102 self.assertRaises(TypeError, genericpath.isdir)
104 def test_isfile(self):
105 self.assertIs(genericpath.isfile(test_support.TESTFN), False)
106 f = open(test_support.TESTFN, "wb")
107 try:
108 f.write("foo")
109 f.close()
110 self.assertIs(genericpath.isfile(test_support.TESTFN), True)
111 os.remove(test_support.TESTFN)
112 os.mkdir(test_support.TESTFN)
113 self.assertIs(genericpath.isfile(test_support.TESTFN), False)
114 os.rmdir(test_support.TESTFN)
115 finally:
116 if not f.close():
117 f.close()
118 try:
119 os.remove(test_support.TESTFN)
120 except os.error:
121 pass
122 try:
123 os.rmdir(test_support.TESTFN)
124 except os.error:
125 pass
127 self.assertRaises(TypeError, genericpath.isdir)
129 def test_samefile(self):
130 f = open(test_support.TESTFN + "1", "wb")
131 try:
132 f.write("foo")
133 f.close()
134 self.assertIs(
135 genericpath.samefile(
136 test_support.TESTFN + "1",
137 test_support.TESTFN + "1"
139 True
141 # If we don't have links, assume that os.stat doesn't return resonable
142 # inode information and thus, that samefile() doesn't work
143 if hasattr(os, "symlink"):
144 os.symlink(
145 test_support.TESTFN + "1",
146 test_support.TESTFN + "2"
148 self.assertIs(
149 genericpath.samefile(
150 test_support.TESTFN + "1",
151 test_support.TESTFN + "2"
153 True
155 os.remove(test_support.TESTFN + "2")
156 f = open(test_support.TESTFN + "2", "wb")
157 f.write("bar")
158 f.close()
159 self.assertIs(
160 genericpath.samefile(
161 test_support.TESTFN + "1",
162 test_support.TESTFN + "2"
164 False
166 finally:
167 if not f.close():
168 f.close()
169 try:
170 os.remove(test_support.TESTFN + "1")
171 except os.error:
172 pass
173 try:
174 os.remove(test_support.TESTFN + "2")
175 except os.error:
176 pass
178 self.assertRaises(TypeError, genericpath.samefile)
180 def test_main():
181 test_support.run_unittest(AllCommonTest)
183 if __name__=="__main__":
184 test_main()