classification
Title: test_macostools fails on OS X 10.6: no attribute 'FSSpec'
Type: behavior Stage: resolved
Components: macOS, Tests Versions: Python 2.7, Python 2.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ronaldoussoren Nosy List: mark.dickinson, ronaldoussoren, zvezdan
Priority: normal Keywords:

Created on 2010-01-29 17:57 by mark.dickinson, last changed 2010-02-07 11:40 by ronaldoussoren. This issue is now closed.

Messages (3)
msg98520 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2010-01-29 17:57
I've been seeing the following test failure for trunk and release26-maint for a while, on OS X 10.6, on a relatively recent Macbook Pro (clean installation of Snow Leopard).  This is from a non-framework debug build (i.e., a simple ./configure && make).


Mark-Dickinsons-MacBook-Pro:trunk dickinsm$ ./python.exe Lib/test/test_macostools.py
test_copy (__main__.TestMacostools) ... ERROR
test_mkalias (__main__.TestMacostools) ... ERROR
test_mkalias_relative (__main__.TestMacostools) ... ERROR
test_touched (__main__.TestMacostools) ... ok

======================================================================
ERROR: test_copy (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Lib/test/test_macostools.py", line 67, in test_copy
    macostools.copy(test_support.TESTFN, TESTFN2)
  File "/Users/dickinsm/python/svn/trunk/Lib/plat-mac/macostools.py", line 114, in copy
    srcfss = File.FSSpec(src)
AttributeError: 'module' object has no attribute 'FSSpec'

======================================================================
ERROR: test_mkalias (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Lib/test/test_macostools.py", line 75, in test_mkalias
    macostools.mkalias(test_support.TESTFN, TESTFN2)
  File "/Users/dickinsm/python/svn/trunk/Lib/plat-mac/macostools.py", line 46, in mkalias
    dstfsr, dstfss = Res.FSCreateResourceFile(dstdirfsr, unicode(dstname),
AttributeError: 'module' object has no attribute 'FSCreateResourceFile'

======================================================================
ERROR: test_mkalias_relative (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Lib/test/test_macostools.py", line 90, in test_mkalias_relative
    macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
  File "/Users/dickinsm/python/svn/trunk/Lib/plat-mac/macostools.py", line 46, in mkalias
    dstfsr, dstfss = Res.FSCreateResourceFile(dstdirfsr, unicode(dstname),
AttributeError: 'module' object has no attribute 'FSCreateResourceFile'

----------------------------------------------------------------------
Ran 4 tests in 0.026s

FAILED (errors=3)
Traceback (most recent call last):
  File "Lib/test/test_macostools.py", line 103, in <module>
    test_main()
  File "Lib/test/test_macostools.py", line 99, in test_main
    test_support.run_unittest(TestMacostools)
  File "/Users/dickinsm/python/svn/trunk/Lib/test/test_support.py", line 901, in run_unittest
    _run_suite(suite)
  File "/Users/dickinsm/python/svn/trunk/Lib/test/test_support.py", line 884, in _run_suite
    raise TestFailed(err)
test.test_support.TestFailed: multiple errors occurred
[31769 refs]


There's nothing glaringly obviously wrong in the build log.
msg98901 - (view) Author: Zvezdan Petkovic (zvezdan) * Date: 2010-02-05 19:39
This seems to be a 64-bit issue.

The 32-bit build passes this test.

>>> echo ${TESTPYTHON} ${TESTPROG} ${TESTOPTS}
/Users/zvezdan/opt/snapshot/2.6.5/bin/python -E -tt /Users/zvezdan/opt/snapshot/2.6.5/lib/python2.6/test/test_macostools.py -l -uall

>>> ${TESTPYTHON} ${TESTPROG} ${TESTOPTS}
test_copy (__main__.TestMacostools) ... ok
test_mkalias (__main__.TestMacostools) ... ok
test_mkalias_relative (__main__.TestMacostools) ... ok
test_touched (__main__.TestMacostools) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.013s

OK

When 64-bit build is used:

>>> echo ${TESTPYTHON} ${TESTPROG} ${TESTOPTS}
/Users/zvezdan/opt/snapshot/2.6.5-64/bin/python -E -tt /Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py -l -uall


>>> ${TESTPYTHON} ${TESTPROG} ${TESTOPTS}
test_copy (__main__.TestMacostools) ... ERROR
test_mkalias (__main__.TestMacostools) ... ERROR
test_mkalias_relative (__main__.TestMacostools) ... ERROR
test_touched (__main__.TestMacostools) ... ok

======================================================================
ERROR: test_copy (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py", line 65, in test_copy
    macostools.copy(test_support.TESTFN, TESTFN2)
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/plat-mac/macostools.py", line 114, in copy
    srcfss = File.FSSpec(src)
AttributeError: 'module' object has no attribute 'FSSpec'

======================================================================
ERROR: test_mkalias (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py", line 73, in test_mkalias
    macostools.mkalias(test_support.TESTFN, TESTFN2)
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/plat-mac/macostools.py", line 46, in mkalias
    dstfsr, dstfss = Res.FSCreateResourceFile(dstdirfsr, unicode(dstname),
AttributeError: 'module' object has no attribute 'FSCreateResourceFile'

======================================================================
ERROR: test_mkalias_relative (__main__.TestMacostools)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py", line 88, in test_mkalias_relative
    macostools.mkalias(test_support.TESTFN, TESTFN2, sys.prefix)
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/plat-mac/macostools.py", line 46, in mkalias
    dstfsr, dstfss = Res.FSCreateResourceFile(dstdirfsr, unicode(dstname),
AttributeError: 'module' object has no attribute 'FSCreateResourceFile'

----------------------------------------------------------------------
Ran 4 tests in 0.016s

FAILED (errors=3)
Traceback (most recent call last):
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py", line 101, in <module>
    test_main()
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_macostools.py", line 97, in test_main
    test_support.run_unittest(TestMacostools)
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_support.py", line 734, in run_unittest
    _run_suite(suite)
  File "/Users/zvezdan/opt/snapshot/2.6.5-64/lib/python2.6/test/test_support.py", line 717, in _run_suite
    raise TestFailed(err)
test.test_support.TestFailed: multiple errors occurred
msg98991 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2010-02-07 11:40
I've disabled the tests (and updated documentation) in r78061 (trunk), r78062 (2.6)

The root cause is that the implemention of macostools uses FSSpecs to implement the failing APIs and those aren't available in 64-bit code. I haven't reimplemented the failing APIs because the modern replacements aren't wrapped in the Carbon module.
History
Date User Action Args
2010-02-07 11:40:59ronaldoussorensetstatus: open -> closed
resolution: fixed
stage: resolved
2010-02-07 11:40:31ronaldoussorensetmessages: + msg98991
2010-02-05 19:39:55zvezdansetnosy: + zvezdan
messages: + msg98901
2010-01-29 17:57:43mark.dickinsoncreate