From dc16fbaa2749cb3f2046f63d7777a4997baba24a Mon Sep 17 00:00:00 2001 From: QianqianZhang Date: Thu, 26 Sep 2024 06:56:35 -0400 Subject: [PATCH] test: add insights-clilent test case for tags --- integration-tests/test_tags.py | 72 ++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 integration-tests/test_tags.py diff --git a/integration-tests/test_tags.py b/integration-tests/test_tags.py new file mode 100644 index 00000000..87614050 --- /dev/null +++ b/integration-tests/test_tags.py @@ -0,0 +1,72 @@ +import pytest +import conftest +import contextlib +import os +import yaml + +pytestmark = pytest.mark.usefixtures("register_subman") + + +def test_tags(insights_client, external_inventory, test_config): + """ + steps: + 1. Register insights-client, and check satellite related + tags on the inventory if the test env is satellte. + + 2. Run insights-client with the --group + + 3. Add a new tag in tags.yaml, and run insights-client, + then check the inventory + :expectedresults: + 1. system is registered to insights, and there will be + satellite related tags supported by branch_info with + satellite env. + + 2. tags.yaml will be created with group option, and new tag + generated by tags.yaml + + 3. The new tag shows on inventory by modifying tags.yaml + """ + # Register insights + insights_client.register() + assert conftest.loop_until(lambda: insights_client.is_registered) + + # Remove the tags.yaml if it exists + with contextlib.suppress(FileNotFoundError): + os.remove("/etc/insights-client/tags.yaml") + + # When test env is satellite, check the tags from branch_info + # the tags from satellite are not generated by tags.yaml + if "satellite" in test_config.environment: + insights_client.run() + system_tags = external_inventory.this_system_tags() + for tag in system_tags: + assert tag["namespace"] == "satellite" + assert not os.path.exists("/etc/insights-client/tags.yaml") + + # Run insights-client --group + insights_client.run("--group=first_tag") + assert os.path.exists("/etc/insights-client/tags.yaml") + + with open("/etc/insights-client/tags.yaml", "r") as tags_yaml: + data_loaded = yaml.safe_load(tags_yaml) + assert data_loaded["group"] == "first_tag" + + # Check new tag from inventory + insights_client.run() + system_tags = external_inventory.this_system_tags() + assert system_tags[-1]["namespace"] == "insights-client" + assert system_tags[-1]["key"] == "group" + assert system_tags[-1]["value"] == "first_tag" + + # Add new tag in tags.yaml file and check on inventory + with open("/etc/insights-client/tags.yaml", "r") as tags_yaml: + data_loaded = yaml.safe_load(tags_yaml) + data_loaded["add_by_file"] = "second_tag" + with open("/etc/insights-client/tags.yaml", "w") as tags_yaml: + yaml.dump(data_loaded, tags_yaml, default_flow_style=False) + insights_client.run() + system_tags = external_inventory.this_system_tags() + assert system_tags[-1]["namespace"] == "insights-client" + assert system_tags[-1]["key"] == "add_by_file" + assert system_tags[-1]["value"] == "second_tag"