python-2.5.2/win32/Lib/test/test_macostools.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     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()