import unittest from test import test_support import os import subprocess MacOS = test_support.import_module('MacOS') #The following should exist if MacOS exists. import Carbon.File TESTFN2 = test_support.TESTFN + '2' class TestMacOS(unittest.TestCase): def testGetCreatorAndType(self): if not os.path.exists('/Developer/Tools/SetFile'): return try: fp = open(test_support.TESTFN, 'w') fp.write('\n') fp.close() subprocess.call( ['/Developer/Tools/SetFile', '-t', 'ABCD', '-c', 'EFGH', test_support.TESTFN]) cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN) self.assertEquals(tp, 'ABCD') self.assertEquals(cr, 'EFGH') finally: os.unlink(test_support.TESTFN) def testSetCreatorAndType(self): if not os.path.exists('/Developer/Tools/GetFileInfo'): return try: fp = open(test_support.TESTFN, 'w') fp.write('\n') fp.close() MacOS.SetCreatorAndType(test_support.TESTFN, 'ABCD', 'EFGH') cr, tp = MacOS.GetCreatorAndType(test_support.TESTFN) self.assertEquals(cr, 'ABCD') self.assertEquals(tp, 'EFGH') data = subprocess.Popen(["/Developer/Tools/GetFileInfo", test_support.TESTFN], stdout=subprocess.PIPE).communicate()[0] tp = None cr = None for ln in data.splitlines(): if ln.startswith('type:'): tp = ln.split()[-1][1:-1] if ln.startswith('creator:'): cr = ln.split()[-1][1:-1] self.assertEquals(cr, 'ABCD') self.assertEquals(tp, 'EFGH') finally: os.unlink(test_support.TESTFN) def testOpenRF(self): try: fp = open(test_support.TESTFN, 'w') fp.write('hello world\n') fp.close() rfp = MacOS.openrf(test_support.TESTFN, '*wb') rfp.write('goodbye world\n') rfp.close() fp = open(test_support.TESTFN, 'r') data = fp.read() fp.close() self.assertEquals(data, 'hello world\n') rfp = MacOS.openrf(test_support.TESTFN, '*rb') data = rfp.read(100) data2 = rfp.read(100) rfp.close() self.assertEquals(data, 'goodbye world\n') self.assertEquals(data2, '') finally: os.unlink(test_support.TESTFN) def test_main(): test_support.run_unittest(TestMacOS) if __name__ == '__main__': test_main()