Skip to content

Commit

Permalink
Add tests for Facts component
Browse files Browse the repository at this point in the history
  • Loading branch information
shweta83 committed Jun 20, 2024
1 parent 91f875b commit 0fc27c1
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 1 deletion.
47 changes: 46 additions & 1 deletion tests/foreman/cli/test_fact.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@
"""

from fauxfactory import gen_string
from fauxfactory import gen_ipaddr, gen_mac, gen_string
import pytest

from robottelo.config import settings

pytestmark = [pytest.mark.tier1]


Expand Down Expand Up @@ -61,3 +63,46 @@ def test_negative_list_by_name(module_target_sat):
assert (
module_target_sat.cli.Fact().list(options={'search': f'fact={gen_string("alpha")}'}) == []
)


@pytest.mark.no_containers
@pytest.mark.rhel_ver_list([settings.content_host.default_rhel_version])
def test_positive_update_client_facts(
module_target_sat, rhel_contenthost, module_org, module_location, module_activation_key
):
"""Update client facts and verify the facts are updated in Satellite.
:id: ea94ccb7-a125-4be3-932a-bfcb035d3604
:steps:
1. Add a new interface to the host.
2. Register the host to Satellite
3. Update the facts in Satellite.
4. Read all the facts for the host.
5. Verify that the facts are updated in Satellite.
:expectedresults: Facts are successfully updated in the Satellite.
"""
mac_address = gen_mac(multicast=False)
ip = gen_ipaddr()
# # Create eth1 interface on the host
add_interface_command = (
f'ip link add eth1 type dummy && ifconfig eth1 hw ether {mac_address} &&'
f'ip addr add {ip}/24 brd + dev eth1 label eth1:1 &&'
'ip link set dev eth1 up'
)
result = rhel_contenthost.execute(add_interface_command)
assert result.status == 0
result = rhel_contenthost.api_register(
module_target_sat,
organization=module_org,
location=module_location,
activation_keys=[module_activation_key.name],
)
assert result.status == 0, f'Failed to register host: {result.stderr}'
rhel_contenthost.execute('subscription-manager facts --update')
facts = rhel_contenthost.nailgun_host.get_facts(data={'per_page': 10000})['results'][
rhel_contenthost.hostname
]
assert ip in facts.values()
assert mac_address.upper() in facts.values()
59 changes: 59 additions & 0 deletions tests/foreman/ui/test_fact.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
"""Test class for Fact UI
:Requirement: Fact
:CaseAutomation: Automated
:CaseComponent: Fact
:Team: Rocket
:CaseImportance: High
"""

import pytest

from robottelo.config import settings


@pytest.mark.no_containers
@pytest.mark.rhel_ver_list([settings.content_host.default_rhel_version])
def test_positive_upload_host_facts(
module_target_sat,
rhel_contenthost,
module_sca_manifest_org,
module_location,
module_activation_key,
):
"""Verify Facts option is available on UI and it is successfully updated in Satellite after registration
:id: f32093d2-4088-4025-9623-adb3141bd770
:steps:
1. Register host to Satellite.
2. Navigate to the Host page and click on kebab.
3. Verify that the facts option is available and is updated on Satellite.
:expectedresults: Facts option is available in the Host UI and all the facts of the host are updated in Satellite.
:BZ: 2001552
:customerscenario: true
"""
with module_target_sat.ui_session() as session:
session.organization.select(module_sca_manifest_org.name)
session.location.select(module_location.name)
cmd = session.host.get_register_command(
{
'general.activation_keys': module_activation_key.name,
'general.insecure': True,
}
)
result = rhel_contenthost.execute(cmd)
assert result.status == 0, f'Failed to register host: {result.stderr}'

rhel_contenthost.execute('subscription-manager facts --update')
host_facts = session.host_new.get_host_facts(rhel_contenthost.hostname, 'network')
assert host_facts is not None
assert rhel_contenthost.ip in [var['Value'] for var in host_facts]

0 comments on commit 0fc27c1

Please sign in to comment.