Тесты не преобразуются 2to3 в setup.py?

У меня есть файл setup.py, который должен поддерживать как Python 2, так и Python 3.

Код в настоящее время работает и может быть установлен в Python 2.x

Если я добавлю в свою настройку предложение use_2to3 = True. py, то модуль может быть установленв Python 3, однако выполнение:

python setup.py test

Вызывает сбой, так как один из тестов использует класс StringIO, а строка импорта в Python 3 не работает (в настоящее время from StringIO import StringIO, где в Python3 должно быть from io import StringIO

Хотя я думал, что как только вы добавите ключевое слово use_2to3, все тесты (включая модульные тесты) будут обработаны 2to3 перед тестированием .

Что я упустил? Если это поможет, основная часть моего setup.py выглядит так:

from setuptools import setup

setup(
    name='myproject',
    version='1.0',
    description='My Cool project',
    classifiers = [
        'Programming Language :: Python',
        'Programming Language :: Python :: 3',
    ],

    py_modules=['mymodule'],
    test_suite='test_mymodule',
    zip_safe=False,
    use_2to3 = True,
)

Изменить: причина, по которой я чувствую, что 2to3 не запускается на python setu p.py testзаключается в том, что он взрывается, а в нижней части трассировки стека написано:

File "/home/aparkin/temp/mymodule/test_mymodule.py", line 18, in <module>
    from StringIO import StringIO

Но если я запустил 2to3 в test_mymodule.py, то эта строка импорта должна была быть переработана на:

from io import StringIO

And (at худшее) тесты должны просто по отдельности провалиться.

7
задан Adam Parkin 1 June 2012 в 16:09
поделиться