# Copyright (C) 2003 Python Software Foundation import unittest import os from test import test_support import struct MacOS = test_support.import_module('MacOS') # The following should exist if MacOS does. import applesingle AS_MAGIC=0x00051600 AS_VERSION=0x00020000 dataforkdata = 'hello\r\0world\n' resourceforkdata = 'goodbye\ncruel\0world\r' applesingledata = struct.pack(">ll16sh", AS_MAGIC, AS_VERSION, "foo", 2) + \ struct.pack(">llllll", 1, 50, len(dataforkdata), 2, 50+len(dataforkdata), len(resourceforkdata)) + \ dataforkdata + \ resourceforkdata TESTFN2 = test_support.TESTFN + '2' class TestApplesingle(unittest.TestCase): def setUp(self): fp = open(test_support.TESTFN, 'w') fp.write(applesingledata) fp.close() def tearDown(self): try: os.unlink(test_support.TESTFN) except: pass try: os.unlink(TESTFN2) except: pass def compareData(self, isrf, data): if isrf: fp = MacOS.openrf(TESTFN2, '*rb') else: fp = open(TESTFN2, 'rb') filedata = fp.read(1000) self.assertEqual(data, filedata) def test_applesingle(self): try: os.unlink(TESTFN2) except: pass applesingle.decode(test_support.TESTFN, TESTFN2) self.compareData(False, dataforkdata) self.compareData(True, resourceforkdata) def test_applesingle_resonly(self): try: os.unlink(TESTFN2) except: pass applesingle.decode(test_support.TESTFN, TESTFN2, resonly=True) self.compareData(False, resourceforkdata) def test_main(): test_support.run_unittest(TestApplesingle) if __name__ == '__main__': test_main()