blob: eea3601cf30454f5d597f579d5e7a91ac0ecda34 [file] [log] [blame]
Jack Jansen10882f62003-01-28 21:39:28 +00001# Copyright (C) 2003 Python Software Foundation
2
3import unittest
4import macostools
Jack Jansen98fc6832003-02-27 23:18:46 +00005import Carbon.File
Jack Jansen10882f62003-01-28 21:39:28 +00006import MacOS
7import os
Jack Jansenaddc5852003-01-28 23:54:05 +00008import sys
Jack Jansen10882f62003-01-28 21:39:28 +00009from test import test_support
10
11TESTFN2 = test_support.TESTFN + '2'
12
13class TestMacostools(unittest.TestCase):
14
15 def setUp(self):
16 fp = open(test_support.TESTFN, 'w')
17 fp.write('hello world\n')
18 fp.close()
19 rfp = MacOS.openrf(test_support.TESTFN, '*wb')
20 rfp.write('goodbye world\n')
21 rfp.close()
22
23 def tearDown(self):
24 try:
25 os.unlink(test_support.TESTFN)
26 except:
27 pass
28 try:
29 os.unlink(TESTFN2)
30 except:
31 pass
Tim Petersf2715e02003-02-19 02:35:07 +000032
Jack Jansen10882f62003-01-28 21:39:28 +000033 def compareData(self):
34 fp = open(test_support.TESTFN, 'r')
35 data1 = fp.read()
36 fp.close()
37 fp = open(TESTFN2, 'r')
38 data2 = fp.read()
39 fp.close()
40 if data1 != data2:
41 return 'Data forks differ'
42 rfp = MacOS.openrf(test_support.TESTFN, '*rb')
43 data1 = rfp.read(1000)
44 rfp.close()
45 rfp = MacOS.openrf(TESTFN2, '*rb')
46 data2 = rfp.read(1000)
47 rfp.close()
48 if data1 != data2:
49 return 'Resource forks differ'
50 return ''
Tim Petersf2715e02003-02-19 02:35:07 +000051
Jack Jansen10882f62003-01-28 21:39:28 +000052 def test_touched(self):
53 # This really only tests that nothing unforeseen happens.
Guido van Rossumd59da4b2007-05-22 18:11:13 +000054 import warnings
Guido van Rossumaf554a02007-08-16 23:48:43 +000055 with test_support.catch_warning():
Guido van Rossumd59da4b2007-05-22 18:11:13 +000056 warnings.filterwarnings('ignore', 'macostools.touched*',
57 DeprecationWarning)
58 macostools.touched(test_support.TESTFN)
Tim Petersf2715e02003-02-19 02:35:07 +000059
Jack Jansen10882f62003-01-28 21:39:28 +000060 def test_copy(self):
61 try:
62 os.unlink(TESTFN2)
63 except:
64 pass
65 macostools.copy(test_support.TESTFN, TESTFN2)
66 self.assertEqual(self.compareData(), '')
Tim Petersf2715e02003-02-19 02:35:07 +000067
Jack Jansenaddc5852003-01-28 23:54:05 +000068 def test_mkalias(self):
69 try:
70 os.unlink(TESTFN2)
71 except:
72 pass
73 macostools.mkalias(test_support.TESTFN, TESTFN2)
Jack Jansen98fc6832003-02-27 23:18:46 +000074 fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
Jack Jansenb86a2e82003-02-05 11:14:16 +000075 self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
Tim Petersf2715e02003-02-19 02:35:07 +000076
Jack Jansenaddc5852003-01-28 23:54:05 +000077 def test_mkalias_relative(self):
78 try:
79 os.unlink(TESTFN2)
80 except:
81 pass
Brett Cannonc8aa8482004-12-06 06:08:59 +000082 # If the directory doesn't exist, then chances are this is a new
83 # install of Python so don't create it since the user might end up
84 # running ``sudo make install`` and creating the directory here won't
85 # leave it with the proper permissions.
86 if not os.path.exists(sys.prefix):
87 return
Jack Jansenaddc5852003-01-28 23:54:05 +000088 macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
Jack Jansen98fc6832003-02-27 23:18:46 +000089 fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
Jack Jansenb86a2e82003-02-05 11:14:16 +000090 self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
Tim Petersf2715e02003-02-19 02:35:07 +000091
92
Jack Jansen10882f62003-01-28 21:39:28 +000093def test_main():
94 test_support.run_unittest(TestMacostools)
95
96
97if __name__ == '__main__':
98 test_main()