[qa] covers __main__

This commit is contained in:
Romain Dorgueil
2017-05-22 19:57:08 +02:00
parent 56f9c334f6
commit a50b21e46d
3 changed files with 53 additions and 34 deletions

View File

@ -1,7 +1,7 @@
# This file has been auto-generated. # This file has been auto-generated.
# All changes will be lost, see Projectfile. # All changes will be lost, see Projectfile.
# #
# Updated at 2017-05-03 18:02:59.359160 # Updated at 2017-05-22 19:54:27.969596
PACKAGE ?= bonobo PACKAGE ?= bonobo
PYTHON ?= $(shell which python) PYTHON ?= $(shell which python)

View File

@ -18,13 +18,19 @@ except NameError:
# Get the long description from the README file # Get the long description from the README file
try:
with open(path.join(here, 'README.rst'), encoding='utf-8') as f: with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
long_description = f.read() long_description = f.read()
except:
long_description = ''
# Get the classifiers from the classifiers file # Get the classifiers from the classifiers file
tolines = lambda c: list(filter(None, map(lambda s: s.strip(), c.split('\n')))) tolines = lambda c: list(filter(None, map(lambda s: s.strip(), c.split('\n'))))
try:
with open(path.join(here, 'classifiers.txt'), encoding='utf-8') as f: with open(path.join(here, 'classifiers.txt'), encoding='utf-8') as f:
classifiers = tolines(f.read()) classifiers = tolines(f.read())
except:
classifiers = []
version_ns = {} version_ns = {}
try: try:
@ -36,41 +42,43 @@ else:
setup( setup(
name='bonobo', name='bonobo',
description=('Bonobo, a simple, modern and atomic extract-transform-load toolkit for ' description=
('Bonobo, a simple, modern and atomic extract-transform-load toolkit for '
'python 3.5+.'), 'python 3.5+.'),
license='Apache License, Version 2.0', license='Apache License, Version 2.0',
install_requires=[ install_requires=[
'colorama >=0.3,<1.0', 'fs >=2.0,<3.0', 'psutil >=5.2,<6.0', 'requests >=2.0,<3.0', 'stevedore >=1.21,<2.0' 'colorama >=0.3,<1.0', 'fs >=2.0,<3.0', 'psutil >=5.2,<6.0',
'requests >=2.0,<3.0', 'stevedore >=1.21,<2.0'
], ],
version=version, version=version,
long_description=long_description, long_description=long_description,
classifiers=classifiers, classifiers=classifiers,
packages=find_packages(exclude=['ez_setup', 'example', 'test']), packages=find_packages(exclude=['ez_setup', 'example', 'test']),
include_package_data=True, include_package_data=True,
data_files=[ data_files=[('share/jupyter/nbextensions/bonobo-jupyter', [
( 'bonobo/ext/jupyter/static/extension.js',
'share/jupyter/nbextensions/bonobo-jupyter', [ 'bonobo/ext/jupyter/static/index.js',
'bonobo/ext/jupyter/static/extension.js', 'bonobo/ext/jupyter/static/index.js',
'bonobo/ext/jupyter/static/index.js.map' 'bonobo/ext/jupyter/static/index.js.map'
] ])],
)
],
extras_require={ extras_require={
'dev': [ 'dev': [
'coverage >=4,<5', 'pylint >=1,<2', 'pytest >=3,<4', 'pytest-cov >=2,<3', 'pytest-timeout >=1,<2', 'sphinx', 'coverage >=4,<5', 'pylint >=1,<2', 'pytest >=3,<4',
'pytest-cov >=2,<3', 'pytest-timeout >=1,<2', 'sphinx',
'sphinx_rtd_theme', 'yapf' 'sphinx_rtd_theme', 'yapf'
], ],
'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5'] 'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5']
}, },
entry_points={ entry_points={
'bonobo.commands': [ 'bonobo.commands': [
'init = bonobo.commands.init:register', 'run = bonobo.commands.run:register', 'init = bonobo.commands.init:register',
'run = bonobo.commands.run:register',
'version = bonobo.commands.version:register' 'version = bonobo.commands.version:register'
], ],
'console_scripts': ['bonobo = bonobo.commands:entrypoint'], 'console_scripts': ['bonobo = bonobo.commands:entrypoint'],
'edgy.project.features': ['bonobo = ' 'edgy.project.features':
['bonobo = '
'bonobo.ext.edgy.project.feature:BonoboFeature'] 'bonobo.ext.edgy.project.feature:BonoboFeature']
}, },
url='https://www.bonobo-project.org/', url='https://www.bonobo-project.org/',
download_url='https://github.com/python-bonobo/bonobo/tarball/{version}'.format(version=version), download_url='https://github.com/python-bonobo/bonobo/tarball/{version}'.
) format(version=version), )

View File

@ -1,10 +1,21 @@
import pkg_resources import pkg_resources
import pytest import pytest
from bonobo import get_examples_path, __version__ from bonobo import __version__, get_examples_path
from bonobo.commands import entrypoint from bonobo.commands import entrypoint
def runner_entrypoint(*args):
return entrypoint(list(args))
def runner_module(*args):
return entrypoint(list(args))
all_runners = pytest.mark.parametrize('runner', [runner_entrypoint, runner_module])
def test_entrypoint(): def test_entrypoint():
commands = {} commands = {}
@ -13,31 +24,31 @@ def test_entrypoint():
assert 'init' in commands assert 'init' in commands
assert 'run' in commands assert 'run' in commands
assert 'version' in commands
def test_no_command(capsys): @all_runners
def test_no_command(runner, capsys):
with pytest.raises(SystemExit): with pytest.raises(SystemExit):
entrypoint([]) runner()
_, err = capsys.readouterr() _, err = capsys.readouterr()
assert 'error: the following arguments are required: command' in err assert 'error: the following arguments are required: command' in err
def test_init(): @all_runners
pass # need ext dir def test_run(runner, capsys):
runner('run', '--quiet', get_examples_path('types/strings.py'))
def test_run(capsys):
entrypoint(['run', '--quiet', get_examples_path('types/strings.py')])
out, err = capsys.readouterr() out, err = capsys.readouterr()
out = out.split('\n') out = out.split('\n')
assert out[0].startswith('Foo ') assert out[0].startswith('Foo ')
assert out[1].startswith('Bar ') assert out[1].startswith('Bar ')
assert out[2].startswith('Baz ') assert out[2].startswith('Baz ')
def test_version(capsys):
entrypoint(['version']) @all_runners
def test_version(runner, capsys):
runner('version')
out, err = capsys.readouterr() out, err = capsys.readouterr()
out = out.strip() out = out.strip()
assert out.startswith('bonobo ') assert out.startswith('bonobo ')
assert out.endswith(__version__) assert out.endswith(__version__)