LINUX.ORG.RU

pytest и python setup.py test

 


0

1

Всем добрый день, есть проблема, никак не могу написать stup.py чтобы тесты работыли. Итого, имеем: Структура проекта

/bin
/project
/tests
setup.cfg
setup.py

setup.cfg

[aliases]
test=pytest

[tool:pytest]
addopts = --verbose -s --cov=project --cov-report term-missing

setup.py

import os
import sys

from setuptools import setup, find_packages

PY_VER = sys.version_info

PACKAGE_TYPE = 'service'
PACKAGE_NAME = 'project'
PACKAGE_DESC = 'Service for tracking call info into DB'

if PY_VER < (3, 5):
    raise RuntimeError(
        "{} doesn't suppport Python earlier than 3.5".format(PACKAGE_NAME),
    )


# Что нужно для запуска python setup.py <any_cmd>
setup_requires = ['pytest-runner']

# Что нужно для установки
install_requires = []

# Что нужно для запуска python setup.py test
tests_require = ['pytest', 'pytest-cov', 'asynctest']

# Зависимости
dependency_links = []

# Скрипты
scripts = []

if PACKAGE_TYPE == 'service':
    scripts.append('bin/{}'.format(PACKAGE_NAME))

setup(
    name=PACKAGE_NAME,
    version='1.0',
    description=PACKAGE_DESC,
    long_description="",
    url='https://git.dev.uiscom.ru/{}/{}'.format(PACKAGE_TYPE, PACKAGE_NAME),
    author="...",
    author_email="...",
    license="Nodefined",
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Environment :: Console',
        'Framework :: AsyncIO',
        'Framework :: Pytest',
        'Intended Audience :: Customer Service',
        'Intended Audience :: Information Technology',
        'License :: Other/Proprietary License',
        'Natural Language :: Russian',
        'Natural Language :: English',
        'Operating System :: POSIX',
        'Programming Language :: Python :: 3.5',
        'Topic :: Microservices',
    ],
    zip_safe=False,
    packages=find_packages(exclude=['tests']),
    scripts=scripts,
    python_requires='>=3.5',
    setup_requires=setup_requires,
    install_requires=install_requires,
    tests_require=tests_require,
    dependency_links=dependency_links,
)

Все это разворачивается в virtualenv. Если в нем установлены зависимости для тестов ('pytest', 'pytest-cov', 'asynctest') то тесты работают. Но на продакшене они мне не нужны, по-этому определил их в секцию tests_require. В итоге, когда проверяю

python setup.py test

Имею ошибку:

E       fixture 'event_loop' not found
>       available fixtures: bus, cache, capfd, capsys, cdr, cfg, cov, doctest_namespace, monkeypatch, pytestconfig, record_xml_property, recwarn, redis_pool, s_cdr, s_service, s_session, service, session, tmpdir, tmpdir_factory
>       use 'pytest --fixtures [testpath]' for help on them.

т.е. почему то не видит фикстуры event_loop... Не знаю что с этим делать...(пробовал вызывать python setup.py test после python setup.py [build|...] - не помогло)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.