| 1 | # Copyright (C) 2003 Python Software Foundation
|
|---|
| 2 |
|
|---|
| 3 | import unittest
|
|---|
| 4 | import macostools
|
|---|
| 5 | import Carbon.File
|
|---|
| 6 | import MacOS
|
|---|
| 7 | import os
|
|---|
| 8 | import sys
|
|---|
| 9 | from test import test_support
|
|---|
| 10 |
|
|---|
| 11 | TESTFN2 = test_support.TESTFN + '2'
|
|---|
| 12 |
|
|---|
| 13 | class 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
|
|---|
| 32 |
|
|---|
| 33 | 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 ''
|
|---|
| 51 |
|
|---|
| 52 | def test_touched(self):
|
|---|
| 53 | # This really only tests that nothing unforeseen happens.
|
|---|
| 54 | macostools.touched(test_support.TESTFN)
|
|---|
| 55 |
|
|---|
| 56 | def test_copy(self):
|
|---|
| 57 | try:
|
|---|
| 58 | os.unlink(TESTFN2)
|
|---|
| 59 | except:
|
|---|
| 60 | pass
|
|---|
| 61 | macostools.copy(test_support.TESTFN, TESTFN2)
|
|---|
| 62 | self.assertEqual(self.compareData(), '')
|
|---|
| 63 |
|
|---|
| 64 | def test_mkalias(self):
|
|---|
| 65 | try:
|
|---|
| 66 | os.unlink(TESTFN2)
|
|---|
| 67 | except:
|
|---|
| 68 | pass
|
|---|
| 69 | macostools.mkalias(test_support.TESTFN, TESTFN2)
|
|---|
| 70 | fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
|
|---|
| 71 | self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
|
|---|
| 72 |
|
|---|
| 73 | def test_mkalias_relative(self):
|
|---|
| 74 | try:
|
|---|
| 75 | os.unlink(TESTFN2)
|
|---|
| 76 | except:
|
|---|
| 77 | pass
|
|---|
| 78 | # If the directory doesn't exist, then chances are this is a new
|
|---|
| 79 | # install of Python so don't create it since the user might end up
|
|---|
| 80 | # running ``sudo make install`` and creating the directory here won't
|
|---|
| 81 | # leave it with the proper permissions.
|
|---|
| 82 | if not os.path.exists(sys.prefix):
|
|---|
| 83 | return
|
|---|
| 84 | macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
|
|---|
| 85 | fss, _, _ = Carbon.File.ResolveAliasFile(TESTFN2, 0)
|
|---|
| 86 | self.assertEqual(fss.as_pathname(), os.path.realpath(test_support.TESTFN))
|
|---|
| 87 |
|
|---|
| 88 |
|
|---|
| 89 | def test_main():
|
|---|
| 90 | test_support.run_unittest(TestMacostools)
|
|---|
| 91 |
|
|---|
| 92 |
|
|---|
| 93 | if __name__ == '__main__':
|
|---|
| 94 | test_main()
|
|---|