Skip to content

Commit

Permalink
test: Fix anta check catalog CLI output and test (#453)
Browse files Browse the repository at this point in the history
Test: Fix anta check catalog CLI output and test
  • Loading branch information
gmuloc authored Nov 10, 2023
1 parent b982f55 commit 526406a
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
2 changes: 1 addition & 1 deletion anta/cli/check/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ def catalog(catalog: AntaCatalog) -> None:
"""
Check that the catalog is valid
"""
console.print(f"[bold][green]Catalog {catalog} is valid")
console.print(f"[bold][green]Catalog {catalog.filename} is valid")
console.print(pretty_repr(catalog.tests))
3 changes: 3 additions & 0 deletions tests/units/cli/check/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Copyright (c) 2023 Arista Networks, Inc.
# Use of this source code is governed by the Apache License 2.0
# that can be found in the LICENSE file.
42 changes: 42 additions & 0 deletions tests/units/cli/check/test_commands.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Copyright (c) 2023 Arista Networks, Inc.
# Use of this source code is governed by the Apache License 2.0
# that can be found in the LICENSE file.
"""
Tests for anta.cli.check.commands
"""
from __future__ import annotations

from pathlib import Path
from typing import TYPE_CHECKING

import pytest

from anta.cli import anta
from tests.lib.utils import default_anta_env

if TYPE_CHECKING:
from click.testing import CliRunner
from pytest import CaptureFixture

DATA_DIR: Path = Path(__file__).parents[3].resolve() / "data"


@pytest.mark.parametrize(
"catalog_path, expected_exit, expected_output",
[
pytest.param("ghost_catalog.yml", 2, "Error: Invalid value for '--catalog'", id="catalog does not exist"),
pytest.param("test_catalog_with_undefined_module.yml", 2, "Unable to load ANTA Test Catalog", id="catalog is not valid"),
pytest.param("test_catalog.yml", 0, f"Catalog {DATA_DIR}/test_catalog.yml is valid", id="catalog valid"),
],
)
def test_catalog(capsys: CaptureFixture[str], click_runner: CliRunner, catalog_path: Path, expected_exit: int, expected_output: str) -> None:
"""
Test `anta check catalog -c catalog
"""
env = default_anta_env()
catalog_full_path = DATA_DIR / catalog_path
cli_args = ["check", "catalog", "-c", str(catalog_full_path)]
with capsys.disabled():
result = click_runner.invoke(anta, cli_args, env=env, auto_envvar_prefix="ANTA")
assert result.exit_code == expected_exit
assert expected_output in result.output

0 comments on commit 526406a

Please sign in to comment.