Я пытался реализовать систему тестирования с одним исходным кодом, которая позволяет автоматически тестировать несколько версий Python с помощью tox + Nosetests.
Проблема в том, что я не могу заставить его работать всякий раз, когда тестирую Python 3.2. Все работает нормально, если исключить Python 3.2.
Вот мой tox.ini
:
[tox]
envlist = py25,py26,py27,py32,pypy,jython
[testenv]
commands =
nosetests []
deps =
nose
mock
[testenv:py32]
commands =
nosetests []
и мой ~/.noserc
:
[nosetests]
verbosity=2
with-doctest=1
Я установил флаг use_2to3
на True
в моем setup.py, но эта ошибка продолжает появляться: NameError: глобальное имя 'basestring' не определено
. Кажется, я упустил какую-то настройку, которая должна заставить работать 2to3
, но я не знаю, что это такое.
Кроме того, я попытался заменить Nousetests []
на python setup.py test
в настройке testenv:py32
. К сожалению, не только продолжает появляться одна и та же ошибка, но и появляется другая ошибка: Ошибка в atexit._run_exitfuncs: TypeError: объект 'NoneType' не вызывается
.
Любые указатели?
РЕДАКТИРОВАТЬ: добавлен код в настройку .py
, если это полезно:
# handle python 3
if sys.version_info >= (3,):
use_2to3 = True
else:
use_2to3 = False
и где-то в setup()
: use_2to3 = use_2to3