blob: 0956d1d05db230d719faf2b17afeeb0008c6e226 [file] [log] [blame]
Ronald Oussoren5640ce22008-06-05 12:58:24 +00001import unittest
Ronald Oussoren5640ce22008-06-05 12:58:24 +00002from test import test_support
3import os
Ronald Oussoren0238497e2009-01-02 14:10:20 +00004import subprocess
Ronald Oussoren5640ce22008-06-05 12:58:24 +00005
R. David Murray59beec32009-03-30 19:04:00 +00006MacOS = test_support.import_module('MacOS')
R. David Murray59beec32009-03-30 19:04:00 +00007
Ronald Oussoren5640ce22008-06-05 12:58:24 +00008TESTFN2 = test_support.TESTFN + '2'
9
10class TestMacOS(unittest.TestCase):
Zachary Ware1f702212013-12-10 14:09:20 -060011 @unittest.skipUnless(os.path.exists('/Developer/Tools/SetFile'),
12 '/Developer/Tools/SetFile does not exist')
Ronald Oussoren0238497e2009-01-02 14:10:20 +000013 def testGetCreatorAndType(self):
Ronald Oussoren0238497e2009-01-02 14:10:20 +000014 try:
15 fp = open(test_support.TESTFN, 'w')
16 fp.write('\n')
17 fp.close()
18
19 subprocess.call(
20 ['/Developer/Tools/SetFile', '-t', 'ABCD', '-c', 'EFGH',
21 test_support.TESTFN])
22
23 cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
Ezio Melotti2623a372010-11-21 13:34:58 +000024 self.assertEqual(tp, 'ABCD')
25 self.assertEqual(cr, 'EFGH')
Ronald Oussoren0238497e2009-01-02 14:10:20 +000026
27 finally:
28 os.unlink(test_support.TESTFN)
29
Zachary Ware1f702212013-12-10 14:09:20 -060030 @unittest.skipUnless(os.path.exists('/Developer/Tools/GetFileInfo'),
31 '/Developer/Tools/GetFileInfo does not exist')
Ronald Oussoren0238497e2009-01-02 14:10:20 +000032 def testSetCreatorAndType(self):
Ronald Oussoren0238497e2009-01-02 14:10:20 +000033 try:
34 fp = open(test_support.TESTFN, 'w')
35 fp.write('\n')
36 fp.close()
37
38 MacOS.SetCreatorAndType(test_support.TESTFN,
39 'ABCD', 'EFGH')
40
41 cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN)
Ezio Melotti2623a372010-11-21 13:34:58 +000042 self.assertEqual(cr, 'ABCD')
43 self.assertEqual(tp, 'EFGH')
Ronald Oussoren0238497e2009-01-02 14:10:20 +000044
45 data = subprocess.Popen(["/Developer/Tools/GetFileInfo", test_support.TESTFN],
46 stdout=subprocess.PIPE).communicate()[0]
47
48 tp = None
49 cr = None
50 for ln in data.splitlines():
51 if ln.startswith('type:'):
52 tp = ln.split()[-1][1:-1]
53 if ln.startswith('creator:'):
54 cr = ln.split()[-1][1:-1]
55
Ezio Melotti2623a372010-11-21 13:34:58 +000056 self.assertEqual(cr, 'ABCD')
57 self.assertEqual(tp, 'EFGH')
Ronald Oussoren0238497e2009-01-02 14:10:20 +000058
59 finally:
60 os.unlink(test_support.TESTFN)
61
62
Ronald Oussoren5640ce22008-06-05 12:58:24 +000063 def testOpenRF(self):
64 try:
65 fp = open(test_support.TESTFN, 'w')
66 fp.write('hello world\n')
67 fp.close()
68
69 rfp = MacOS.openrf(test_support.TESTFN, '*wb')
70 rfp.write('goodbye world\n')
71 rfp.close()
72
73
74 fp = open(test_support.TESTFN, 'r')
75 data = fp.read()
76 fp.close()
Ezio Melotti2623a372010-11-21 13:34:58 +000077 self.assertEqual(data, 'hello world\n')
Ronald Oussoren5640ce22008-06-05 12:58:24 +000078
79 rfp = MacOS.openrf(test_support.TESTFN, '*rb')
80 data = rfp.read(100)
81 data2 = rfp.read(100)
82 rfp.close()
Ezio Melotti2623a372010-11-21 13:34:58 +000083 self.assertEqual(data, 'goodbye world\n')
84 self.assertEqual(data2, '')
Ronald Oussoren5640ce22008-06-05 12:58:24 +000085
86
87 finally:
88 os.unlink(test_support.TESTFN)
89
90def test_main():
91 test_support.run_unittest(TestMacOS)
92
93
94if __name__ == '__main__':
95 test_main()