Skip to content

Commit

Permalink
Capsule Sanity Testing for capsule sync
Browse files Browse the repository at this point in the history
  • Loading branch information
jyejare committed Oct 4, 2024
1 parent 3d194ed commit 874205a
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 5 deletions.
5 changes: 4 additions & 1 deletion pytest_fixtures/core/sat_cap_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,11 @@ def large_capsule_configured(large_capsule_host, target_sat):
@pytest.fixture(scope='module')
def module_capsule_configured(request, module_capsule_host, module_target_sat):
"""Configure the capsule instance with the satellite from settings.server.hostname"""
if not request.config.option.n_minus:
if not any([request.config.option.n_minus, 'build_sanity' in request.config.option.markexpr]):
module_capsule_host.capsule_setup(sat_host=module_target_sat)
# The capsule is being set here by capsule installation test of `test_installer.py` for sanity
if 'build_sanity' in request.config.option.markexpr:
return Capsule.get_host_by_hostname(settings.capsule.hostname)
return module_capsule_host


Expand Down
8 changes: 7 additions & 1 deletion pytest_fixtures/core/xdist.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import pytest

from robottelo.config import configure_airgun, configure_nailgun, settings
from robottelo.hosts import Satellite
from robottelo.hosts import Capsule, Satellite
from robottelo.logging import logger


Expand All @@ -16,12 +16,18 @@ def align_to_satellite(request, worker_id, satellite_factory):
if 'build_sanity' in request.config.option.markexpr:
settings.set("server.hostname", None)
yield
# Checkout Sanity Satellite finally
if settings.server.hostname:
sanity_sat = Satellite(settings.server.hostname)
sanity_sat.unregister()
if settings.server.auto_checkin:
broker_sat = Satellite.get_host_by_hostname(sanity_sat.hostname)
Broker(hosts=[broker_sat]).checkin()
# Checkout Sanity Capsule finally
if settings.capsule.hostname:
sanity_cap = Capsule.get_host_by_hostname(settings.server.hostname)
sanity_cap.unregister()
Broker(hosts=[sanity_cap]).checkin()
else:
# clear any hostname that may have been previously set
settings.set("server.hostname", None)
Expand Down
7 changes: 5 additions & 2 deletions robottelo/hosts.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,11 @@ def setup(self):
def teardown(self):
logger.debug('START: tearing down host %s', self)
if not self.blank and not getattr(self, '_skip_context_checkin', False):
self.unregister()
if type(self) is not Satellite: # do not delete Satellite's host record
if type(self) is not Capsule:
self.unregister()
if (
type(self) is not Satellite or type(self) is not Capsule
): # do not delete Satellite's host record
self._delete_host_record()

logger.debug('END: tearing down host %s', self)
Expand Down
2 changes: 2 additions & 0 deletions tests/foreman/api/test_capsulecontent.py
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,8 @@ def test_positive_iso_library_sync(
assert set(sat_isos) == set(caps_isos)

@pytest.mark.tier4
@pytest.mark.build_sanity
@pytest.mark.order(after="tests/foreman/installer/test_installer.py::test_capsule_installation")
@pytest.mark.skip_if_not_set('capsule', 'fake_manifest')
def test_positive_on_demand_sync(
self,
Expand Down
7 changes: 6 additions & 1 deletion tests/foreman/installer/test_installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ def sat_non_default_install(module_sat_ready_rhels):
ids=["un_auth_proxy"],
)
def test_capsule_installation(
sat_fapolicyd_install, cap_ready_rhel, module_sca_manifest, setting_update
pytestconfig, sat_fapolicyd_install, cap_ready_rhel, module_sca_manifest, setting_update
):
"""Run a basic Capsule installation with fapolicyd
Expand Down Expand Up @@ -416,6 +416,11 @@ def test_capsule_installation(
port_result = cap_ready_rhel.execute("ss -tuln | grep 8443")
assert not port_result.stdout

# Setup Capsule Hostname for further sanity caspule testing
if 'build_sanity' in pytestconfig.option.markexpr:
settings.capsule.hostname = cap_ready_rhel.hostname
cap_ready_rhel._skip_context_checkin = True


@pytest.mark.e2e
@pytest.mark.tier1
Expand Down

0 comments on commit 874205a

Please sign in to comment.