from pathlib import Path from contextlib import chdir from json import dumps, loads from rougail.cli.__main__ import main test_dir = Path(__file__).parent def test_cli(): with chdir(test_dir / 'cli'): ret = main(['--main_dictionaries', 'structures'], do_not_print=True) filename = Path('result.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(ret[1]) with filename.open() as fh: data = fh.read() assert ret == (True, data) def test_cli_boolean(): with chdir(test_dir / 'cli'): ret = main(['--main_dictionaries', 'structures', '--console.mandatory'], do_not_print=True) filename = Path('result.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(ret[1]) with filename.open() as fh: data = fh.read() assert ret == (True, data) def test_cli_boolean_no(): with chdir(test_dir / 'cli'): ret = main(['--main_dictionaries', 'structures', '--console.no-mandatory'], do_not_print=True) filename = Path('result.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(ret[1]) with filename.open() as fh: data = fh.read() assert ret == (True, data) def test_cli_version(): with chdir(test_dir / 'cli'): ret = main(['--cli.version'], do_not_print=True) filename = Path('versions.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(dumps(ret)) with filename.open() as fh: data = loads(fh.read()) assert ret == data def test_cli_version_user_data_disabled(): with chdir(test_dir / 'cli'): ret = main(['--cli.version', '--step.output', 'doc'], do_not_print=True) filename = Path('versions.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(dumps(ret)) with filename.open() as fh: data = loads(fh.read()) assert ret == data def test_cli_version_user_data_disabled(): with chdir(test_dir / 'second_step'): ret = main(['--main_dictionaries', 'structures', '--step.output', 'doc'], do_not_print=True) filename = Path('yaml.txt') if not filename.is_file(): with filename.open('w') as fh: fh.write(dumps(ret[1])) with filename.open() as fh: data = loads(fh.read()) assert ret == (True, data)