import unittest | |
from test import test_support | |
import os | |
import subprocess | |
MacOS = test_support.import_module('MacOS') | |
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.assertEqual(tp, 'ABCD') | |
self.assertEqual(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.assertEqual(cr, 'ABCD') | |
self.assertEqual(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.assertEqual(cr, 'ABCD') | |
self.assertEqual(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.assertEqual(data, 'hello world\n') | |
rfp = MacOS.openrf(test_support.TESTFN, '*rb') | |
data = rfp.read(100) | |
data2 = rfp.read(100) | |
rfp.close() | |
self.assertEqual(data, 'goodbye world\n') | |
self.assertEqual(data2, '') | |
finally: | |
os.unlink(test_support.TESTFN) | |
def test_main(): | |
test_support.run_unittest(TestMacOS) | |
if __name__ == '__main__': | |
test_main() |