from pathlib import Path import pytest import conda_package_handling.cli as cli from .test_api import data_dir, test_package_name def test_cli(tmpdir, mocker): """ Code coverage for the cli. """ for command in [ ["x", str(Path(data_dir, test_package_name + ".tar.bz2")), f"--prefix={tmpdir}"], [ "x", str(Path(data_dir, test_package_name + ".conda")), "--info", f"--prefix={tmpdir}", ], ["c", str(Path(tmpdir, test_package_name)), ".tar.bz2", f"--out-folder={tmpdir}"], ]: cli.main(args=command) # XXX difficult to get to this error handling code through the actual CLI; # for example, a .tar.bz2 that can't be extracted raises OSError instead of # returning errors. Designed for .tar.bz2 -> .conda conversions that somehow # omit files? mocker.patch( "conda_package_handling.api.transmute", return_value=set("that is why you fail".split()) ) with pytest.raises(SystemExit): command = [ "t", str(Path(data_dir, test_package_name + ".tar.bz2")), ".conda", f"--out-folder={tmpdir}", ] cli.main(args=command) def test_import_main(): """ e.g. python -m conda_package_handling """ with pytest.raises(SystemExit): import conda_package_handling.__main__ # noqa