Я пишу модульные тесты для функции, которая принимает аргументы *args
и **kwargs
. Разумный вариант использования этой функции - использование аргументов с ключевыми словами после аргумента *args
, т.е. в форме
def f(a, *b, **c):
print a, b, c
f(1, *(2, 3, 4), keyword=13)
Теперь это только стало легальным в Python 2.6 ; в более ранних версиях приведенная выше строка является синтаксической ошибкой, поэтому она даже не будет компилироваться в байт-код.
Мой вопрос: Как я могу проверить функциональность, предоставляемую в более новой версии Python, и при этом запустить тесты для более старых версий Python?
Я должен отметить, что сама функция отлично работает для более ранних версий Python, только некоторые вызовы являются синтаксическими ошибками до Python 2.6. Различные методы проверки версии Python, которые я видел, не работают для этого, поскольку они не проходят стадию компиляции.
Я бы предпочел не разбивать тесты на несколько файлов, если это вообще возможно.