summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2003-11-18 22:36:12 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2003-11-18 22:36:12 (GMT)
commitc0b2b72702bb7f671489e2addb6f9794bdad9243 (patch)
tree62401198063bb945c4b3f0c6e2486bf0f26ae15a
parentc19c5a62aef7dce0e8147655b0d2f087965fae75 (diff)
downloadcpython-c0b2b72702bb7f671489e2addb6f9794bdad9243.zip
cpython-c0b2b72702bb7f671489e2addb6f9794bdad9243.tar.gz
cpython-c0b2b72702bb7f671489e2addb6f9794bdad9243.tar.bz2
Test the applesingle decoder.
-rw-r--r--Lib/test/test_applesingle.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/Lib/test/test_applesingle.py b/Lib/test/test_applesingle.py
new file mode 100644
index 0000000..eeb01c5
--- /dev/null
+++ b/Lib/test/test_applesingle.py
@@ -0,0 +1,72 @@
+# Copyright (C) 2003 Python Software Foundation
+
+import unittest
+import macostools
+import Carbon.File
+import MacOS
+import os
+import sys
+from test import test_support
+import struct
+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()