anta/tests/integration/test_merge_catalogs.py
Daniel Baumann 8a6a3342fc
Merging upstream version 1.3.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-03-17 07:33:51 +01:00

40 lines
1.3 KiB
Python

# Copyright (c) 2024-2025 Arista Networks, Inc.
# Use of this source code is governed by the Apache License 2.0
# that can be found in the LICENSE file.
"""Test examples/merge_catalogs.py script."""
from __future__ import annotations
import runpy
from pathlib import Path
from anta.catalog import AntaCatalog
DATA = Path(__file__).parent / "data"
MERGE_CATALOGS_PATH = Path(__file__).parents[2] / "examples/merge_catalogs.py"
def test_merge_catalogs() -> None:
"""Test merge_catalogs script."""
# Adding symlink to match the script data
intended_path = Path.cwd() / "intended"
intended_path.mkdir(exist_ok=True)
intended_catalogs_path = intended_path / "test_catalogs/"
intended_catalogs_path.symlink_to(DATA, target_is_directory=True)
try:
# Run the script
runpy.run_path(str(MERGE_CATALOGS_PATH), run_name="__main__")
# Assert that the created file exist and is a combination of the inputs
output_catalog = Path("anta-catalog.yml")
assert output_catalog.exists()
total_tests = sum(len(AntaCatalog.parse(catalog_file).tests) for catalog_file in DATA.rglob("*-catalog.yml"))
assert total_tests == len(AntaCatalog.parse(output_catalog).tests)
finally:
# Cleanup
output_catalog.unlink()
intended_catalogs_path.unlink()
intended_path.rmdir()