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