Repository URL to install this package:
|
Version:
2022.10.0 ▾
|
import pytest
click = pytest.importorskip("click")
import importlib.metadata
import json
import platform
import sys
from click.testing import CliRunner
import dask
import dask.cli
def test_version():
runner = CliRunner()
result = runner.invoke(dask.cli.cli, ["--version"])
assert result.exit_code == 0
assert result.output == f"cli, version {dask.__version__}\n"
def test_info_versions():
runner = CliRunner()
result = runner.invoke(dask.cli.versions)
assert result.exit_code == 0
# $ dask info versions
# will print to stdout a json like struct, so result.output can be
# loaded with json.
table = json.loads(result.output)
assert table["Python"] == ".".join(str(x) for x in sys.version_info[:3])
assert table["dask"] == dask.__version__
assert table["Platform"] == platform.uname().system
try:
from distributed import __version__ as distributed_version
except ImportError:
distributed_version = None
assert table["distributed"] == distributed_version
@click.group
def dummy_cli():
pass
def bad_command():
pass
@click.command(name="good")
def good_command():
pass
@click.command(name="good")
def good_command_2():
pass
def test_register_command_ep():
from dask.cli import _register_command_ep
bad_ep = importlib.metadata.EntryPoint(
name="bad",
value="dask.tests.test_cli:bad_command",
group="dask_cli",
)
good_ep = importlib.metadata.EntryPoint(
name="good",
value="dask.tests.test_cli:good_command",
group="dask_cli",
)
with pytest.warns(UserWarning, match="must be instances of"):
_register_command_ep(dummy_cli, bad_ep)
_register_command_ep(dummy_cli, good_ep)
assert "good" in dummy_cli.commands
assert dummy_cli.commands["good"] is good_command
@click.group
def dummy_cli_2():
pass
def test_repeated_name_registration_warn():
from dask.cli import _register_command_ep
one = importlib.metadata.EntryPoint(
name="one",
value="dask.tests.test_cli:good_command",
group="dask_cli",
)
two = importlib.metadata.EntryPoint(
name="two",
value="dask.tests.test_cli:good_command_2",
group="dask_cli",
)
_register_command_ep(dummy_cli_2, one)
with pytest.warns(UserWarning, match="While registering the command with name"):
_register_command_ep(dummy_cli_2, two)