test_macos.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import unittest
  2. from test import test_support
  3. import os
  4. import subprocess
  5. MacOS = test_support.import_module('MacOS')
  6. TESTFN2 = test_support.TESTFN + '2'
  7. class TestMacOS(unittest.TestCase):
  8. @unittest.skipUnless(os.path.exists('/Developer/Tools/SetFile'),
  9. '/Developer/Tools/SetFile does not exist')
  10. def testGetCreatorAndType(self):
  11. try:
  12. fp = open(test_support.TESTFN, 'w')
  13. fp.write('\n')
  14. fp.close()
  15. subprocess.call(
  16. ['/Developer/Tools/SetFile', '-t', 'ABCD', '-c', 'EFGH',
  17. test_support.TESTFN])
  18. cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
  19. self.assertEqual(tp, 'ABCD')
  20. self.assertEqual(cr, 'EFGH')
  21. finally:
  22. os.unlink(test_support.TESTFN)
  23. @unittest.skipUnless(os.path.exists('/Developer/Tools/GetFileInfo'),
  24. '/Developer/Tools/GetFileInfo does not exist')
  25. def testSetCreatorAndType(self):
  26. try:
  27. fp = open(test_support.TESTFN, 'w')
  28. fp.write('\n')
  29. fp.close()
  30. MacOS.SetCreatorAndType(test_support.TESTFN,
  31. 'ABCD', 'EFGH')
  32. cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
  33. self.assertEqual(cr, 'ABCD')
  34. self.assertEqual(tp, 'EFGH')
  35. data = subprocess.Popen(["/Developer/Tools/GetFileInfo", test_support.TESTFN],
  36. stdout=subprocess.PIPE).communicate()[0]
  37. tp = None
  38. cr = None
  39. for ln in data.splitlines():
  40. if ln.startswith('type:'):
  41. tp = ln.split()[-1][1:-1]
  42. if ln.startswith('creator:'):
  43. cr = ln.split()[-1][1:-1]
  44. self.assertEqual(cr, 'ABCD')
  45. self.assertEqual(tp, 'EFGH')
  46. finally:
  47. os.unlink(test_support.TESTFN)
  48. def testOpenRF(self):
  49. try:
  50. fp = open(test_support.TESTFN, 'w')
  51. fp.write('hello world\n')
  52. fp.close()
  53. rfp = MacOS.openrf(test_support.TESTFN, '*wb')
  54. rfp.write('goodbye world\n')
  55. rfp.close()
  56. fp = open(test_support.TESTFN, 'r')
  57. data = fp.read()
  58. fp.close()
  59. self.assertEqual(data, 'hello world\n')
  60. rfp = MacOS.openrf(test_support.TESTFN, '*rb')
  61. data = rfp.read(100)
  62. data2 = rfp.read(100)
  63. rfp.close()
  64. self.assertEqual(data, 'goodbye world\n')
  65. self.assertEqual(data2, '')
  66. finally:
  67. os.unlink(test_support.TESTFN)
  68. def test_main():
  69. test_support.run_unittest(TestMacOS)
  70. if __name__ == '__main__':
  71. test_main()