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