mirror of
https://github.com/python/cpython.git
synced 2025-07-31 07:04:42 +00:00
- Move functions common to all path modules into genericpath.py and have the
OS speicifc path modules import them. - Have os2emxpath import common functions fron ntpath instead of using copies
This commit is contained in:
parent
4582d7d905
commit
7b60464ceb
6 changed files with 273 additions and 476 deletions
184
Lib/test/test_genericpath.py
Normal file
184
Lib/test/test_genericpath.py
Normal file
|
@ -0,0 +1,184 @@
|
|||
import unittest
|
||||
from test import test_support
|
||||
import os
|
||||
import genericpath
|
||||
|
||||
class AllCommonTest(unittest.TestCase):
|
||||
|
||||
def assertIs(self, a, b):
|
||||
self.assert_(a is b)
|
||||
|
||||
def test_commonprefix(self):
|
||||
self.assertEqual(
|
||||
genericpath.commonprefix([]),
|
||||
""
|
||||
)
|
||||
self.assertEqual(
|
||||
genericpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]),
|
||||
"/home/swen"
|
||||
)
|
||||
self.assertEqual(
|
||||
genericpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]),
|
||||
"/home/swen/"
|
||||
)
|
||||
self.assertEqual(
|
||||
genericpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]),
|
||||
"/home/swen/spam"
|
||||
)
|
||||
|
||||
def test_getsize(self):
|
||||
f = open(test_support.TESTFN, "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
self.assertEqual(genericpath.getsize(test_support.TESTFN), 3)
|
||||
finally:
|
||||
if not f.closed:
|
||||
f.close()
|
||||
os.remove(test_support.TESTFN)
|
||||
|
||||
def test_time(self):
|
||||
f = open(test_support.TESTFN, "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
f = open(test_support.TESTFN, "ab")
|
||||
f.write("bar")
|
||||
f.close()
|
||||
f = open(test_support.TESTFN, "rb")
|
||||
d = f.read()
|
||||
f.close()
|
||||
self.assertEqual(d, "foobar")
|
||||
|
||||
self.assert_(
|
||||
genericpath.getctime(test_support.TESTFN) <=
|
||||
genericpath.getmtime(test_support.TESTFN)
|
||||
)
|
||||
finally:
|
||||
if not f.closed:
|
||||
f.close()
|
||||
os.remove(test_support.TESTFN)
|
||||
|
||||
def test_exists(self):
|
||||
self.assertIs(genericpath.exists(test_support.TESTFN), False)
|
||||
f = open(test_support.TESTFN, "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
self.assertIs(genericpath.exists(test_support.TESTFN), True)
|
||||
finally:
|
||||
if not f.close():
|
||||
f.close()
|
||||
try:
|
||||
os.remove(test_support.TESTFN)
|
||||
except os.error:
|
||||
pass
|
||||
|
||||
self.assertRaises(TypeError, genericpath.exists)
|
||||
|
||||
def test_isdir(self):
|
||||
self.assertIs(genericpath.isdir(test_support.TESTFN), False)
|
||||
f = open(test_support.TESTFN, "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
self.assertIs(genericpath.isdir(test_support.TESTFN), False)
|
||||
os.remove(test_support.TESTFN)
|
||||
os.mkdir(test_support.TESTFN)
|
||||
self.assertIs(genericpath.isdir(test_support.TESTFN), True)
|
||||
os.rmdir(test_support.TESTFN)
|
||||
finally:
|
||||
if not f.close():
|
||||
f.close()
|
||||
try:
|
||||
os.remove(test_support.TESTFN)
|
||||
except os.error:
|
||||
pass
|
||||
try:
|
||||
os.rmdir(test_support.TESTFN)
|
||||
except os.error:
|
||||
pass
|
||||
|
||||
self.assertRaises(TypeError, genericpath.isdir)
|
||||
|
||||
def test_isfile(self):
|
||||
self.assertIs(genericpath.isfile(test_support.TESTFN), False)
|
||||
f = open(test_support.TESTFN, "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
self.assertIs(genericpath.isfile(test_support.TESTFN), True)
|
||||
os.remove(test_support.TESTFN)
|
||||
os.mkdir(test_support.TESTFN)
|
||||
self.assertIs(genericpath.isfile(test_support.TESTFN), False)
|
||||
os.rmdir(test_support.TESTFN)
|
||||
finally:
|
||||
if not f.close():
|
||||
f.close()
|
||||
try:
|
||||
os.remove(test_support.TESTFN)
|
||||
except os.error:
|
||||
pass
|
||||
try:
|
||||
os.rmdir(test_support.TESTFN)
|
||||
except os.error:
|
||||
pass
|
||||
|
||||
self.assertRaises(TypeError, genericpath.isdir)
|
||||
|
||||
def test_samefile(self):
|
||||
f = open(test_support.TESTFN + "1", "wb")
|
||||
try:
|
||||
f.write("foo")
|
||||
f.close()
|
||||
self.assertIs(
|
||||
genericpath.samefile(
|
||||
test_support.TESTFN + "1",
|
||||
test_support.TESTFN + "1"
|
||||
),
|
||||
True
|
||||
)
|
||||
# If we don't have links, assume that os.stat doesn't return resonable
|
||||
# inode information and thus, that samefile() doesn't work
|
||||
if hasattr(os, "symlink"):
|
||||
os.symlink(
|
||||
test_support.TESTFN + "1",
|
||||
test_support.TESTFN + "2"
|
||||
)
|
||||
self.assertIs(
|
||||
genericpath.samefile(
|
||||
test_support.TESTFN + "1",
|
||||
test_support.TESTFN + "2"
|
||||
),
|
||||
True
|
||||
)
|
||||
os.remove(test_support.TESTFN + "2")
|
||||
f = open(test_support.TESTFN + "2", "wb")
|
||||
f.write("bar")
|
||||
f.close()
|
||||
self.assertIs(
|
||||
genericpath.samefile(
|
||||
test_support.TESTFN + "1",
|
||||
test_support.TESTFN + "2"
|
||||
),
|
||||
False
|
||||
)
|
||||
finally:
|
||||
if not f.close():
|
||||
f.close()
|
||||
try:
|
||||
os.remove(test_support.TESTFN + "1")
|
||||
except os.error:
|
||||
pass
|
||||
try:
|
||||
os.remove(test_support.TESTFN + "2")
|
||||
except os.error:
|
||||
pass
|
||||
|
||||
self.assertRaises(TypeError, genericpath.samefile)
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(AllCommonTest)
|
||||
|
||||
if __name__=="__main__":
|
||||
test_main()
|
Loading…
Add table
Add a link
Reference in a new issue