"""Tests for the ``opik configure`` command group.""" import pathlib from unittest import mock from click.testing import CliRunner from opik.cli import cli from opik.cli import configure as configure_cli def test_configure_status__prints_config_summary(): runner = CliRunner() config = mock.Mock( config_file_exists=True, config_file_fullpath=pathlib.Path("/home/u/.opik.config"), url_override="https://dev.comet.com/opik/api/", workspace="my-ws", ) with mock.patch.object( configure_cli.opik_config, "OpikConfig", return_value=config ): result = runner.invoke(cli, ["configure", "status"]) assert result.exit_code == 0 assert "Your Opik configuration" in result.output assert "https://dev.comet.com/opik/api/" in result.output assert "my-ws" in result.output def test_configure_status__not_configured__points_to_configure(): runner = CliRunner() config = mock.Mock( config_file_exists=False, config_file_fullpath=pathlib.Path("/home/u/.opik.config"), ) with mock.patch.object( configure_cli.opik_config, "OpikConfig", return_value=config ): result = runner.invoke(cli, ["configure", "status"]) assert result.exit_code == 0 assert "not found" in result.output assert "opik configure" in result.output def test_configure_no_subcommand__runs_configurator(): runner = CliRunner() with mock.patch.object(configure_cli, "run_interactive_configure") as spy: result = runner.invoke(cli, ["configure", "--use-local"]) assert result.exit_code == 0 spy.assert_called_once() assert spy.call_args.kwargs["use_local"] is True