| import unittest |
| from test import 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(support.TESTFN, "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| self.assertEqual(genericpath.getsize(support.TESTFN), 3) |
| finally: |
| if not f.closed: |
| f.close() |
| os.remove(support.TESTFN) |
| |
| def test_time(self): |
| f = open(support.TESTFN, "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| f = open(support.TESTFN, "ab") |
| f.write(b"bar") |
| f.close() |
| f = open(support.TESTFN, "rb") |
| d = f.read() |
| f.close() |
| self.assertEqual(d, b"foobar") |
| |
| self.assert_( |
| genericpath.getctime(support.TESTFN) <= |
| genericpath.getmtime(support.TESTFN) |
| ) |
| finally: |
| if not f.closed: |
| f.close() |
| os.remove(support.TESTFN) |
| |
| def test_exists(self): |
| self.assertIs(genericpath.exists(support.TESTFN), False) |
| f = open(support.TESTFN, "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| self.assertIs(genericpath.exists(support.TESTFN), True) |
| finally: |
| if not f.close(): |
| f.close() |
| try: |
| os.remove(support.TESTFN) |
| except os.error: |
| pass |
| |
| self.assertRaises(TypeError, genericpath.exists) |
| |
| def test_isdir(self): |
| self.assertIs(genericpath.isdir(support.TESTFN), False) |
| f = open(support.TESTFN, "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| self.assertIs(genericpath.isdir(support.TESTFN), False) |
| os.remove(support.TESTFN) |
| os.mkdir(support.TESTFN) |
| self.assertIs(genericpath.isdir(support.TESTFN), True) |
| os.rmdir(support.TESTFN) |
| finally: |
| if not f.close(): |
| f.close() |
| try: |
| os.remove(support.TESTFN) |
| except os.error: |
| pass |
| try: |
| os.rmdir(support.TESTFN) |
| except os.error: |
| pass |
| |
| self.assertRaises(TypeError, genericpath.isdir) |
| |
| def test_isfile(self): |
| self.assertIs(genericpath.isfile(support.TESTFN), False) |
| f = open(support.TESTFN, "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| self.assertIs(genericpath.isfile(support.TESTFN), True) |
| os.remove(support.TESTFN) |
| os.mkdir(support.TESTFN) |
| self.assertIs(genericpath.isfile(support.TESTFN), False) |
| os.rmdir(support.TESTFN) |
| finally: |
| if not f.close(): |
| f.close() |
| try: |
| os.remove(support.TESTFN) |
| except os.error: |
| pass |
| try: |
| os.rmdir(support.TESTFN) |
| except os.error: |
| pass |
| |
| self.assertRaises(TypeError, genericpath.isdir) |
| |
| def test_samefile(self): |
| f = open(support.TESTFN + "1", "wb") |
| try: |
| f.write(b"foo") |
| f.close() |
| self.assertIs( |
| genericpath.samefile( |
| support.TESTFN + "1", |
| 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( |
| support.TESTFN + "1", |
| support.TESTFN + "2" |
| ) |
| self.assertIs( |
| genericpath.samefile( |
| support.TESTFN + "1", |
| support.TESTFN + "2" |
| ), |
| True |
| ) |
| os.remove(support.TESTFN + "2") |
| f = open(support.TESTFN + "2", "wb") |
| f.write(b"bar") |
| f.close() |
| self.assertIs( |
| genericpath.samefile( |
| support.TESTFN + "1", |
| support.TESTFN + "2" |
| ), |
| False |
| ) |
| finally: |
| if not f.close(): |
| f.close() |
| try: |
| os.remove(support.TESTFN + "1") |
| except os.error: |
| pass |
| try: |
| os.remove(support.TESTFN + "2") |
| except os.error: |
| pass |
| |
| self.assertRaises(TypeError, genericpath.samefile) |
| |
| def test_main(): |
| support.run_unittest(AllCommonTest) |
| |
| if __name__=="__main__": |
| test_main() |