import os from unittest.mock import patch from bonobo import get_examples_path from bonobo.util.testing import all_runners @all_runners def test_run(runner): out, err = runner('run', '--quiet', get_examples_path('types/strings.py')) out = out.split('\n') assert out[0].startswith('Foo ') assert out[1].startswith('Bar ') assert out[2].startswith('Baz ') @all_runners def test_run_module(runner): out, err = runner('run', '--quiet', '-m', 'bonobo.examples.types.strings') out = out.split('\n') assert out[0].startswith('Foo ') assert out[1].startswith('Bar ') assert out[2].startswith('Baz ') @all_runners def test_run_path(runner): out, err = runner('run', '--quiet', get_examples_path('types')) out = out.split('\n') assert out[0].startswith('Foo ') assert out[1].startswith('Bar ') assert out[2].startswith('Baz ') @all_runners def test_install_requirements_for_dir(runner): dirname = get_examples_path('types') with patch('bonobo.commands.run._install_requirements') as install_mock: runner('run', '--install', dirname) install_mock.assert_called_once_with(os.path.join(dirname, 'requirements.txt')) @all_runners def test_install_requirements_for_file(runner): dirname = get_examples_path('types') with patch('bonobo.commands.run._install_requirements') as install_mock: runner('run', '--install', os.path.join(dirname, 'strings.py')) install_mock.assert_called_once_with(os.path.join(dirname, 'requirements.txt'))