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