Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Component Audit Part-2 #12519

Merged
merged 1 commit into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions pytest_fixtures/component/activationkey.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,15 @@


@pytest.fixture(scope='module')
def module_activation_key(module_org, module_target_sat):
return module_target_sat.api.ActivationKey(organization=module_org).create()
def module_activation_key(module_entitlement_manifest_org, module_target_sat):
"""Create activation key using default CV and library environment."""
activation_key = module_target_sat.api.ActivationKey(
auto_attach=True,
content_view=module_entitlement_manifest_org.default_content_view.id,
environment=module_entitlement_manifest_org.library.id,
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
organization=module_entitlement_manifest_org,
).create()
return activation_key


@pytest.fixture(scope='module')
Expand Down
39 changes: 36 additions & 3 deletions tests/foreman/api/test_registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@

import pytest

from robottelo.constants import CLIENT_PORT
from robottelo import constants
from robottelo.config import settings

pytestmark = pytest.mark.tier1

Expand Down Expand Up @@ -60,7 +61,7 @@ def test_host_registration_end_to_end(

# Verify server.hostname and server.port from subscription-manager config
assert module_target_sat.hostname == rhel_contenthost.subscription_config['server']['hostname']
assert CLIENT_PORT == rhel_contenthost.subscription_config['server']['port']
assert constants.CLIENT_PORT == rhel_contenthost.subscription_config['server']['port']

# Update module_capsule_configured to include module_org/module_location
nc = module_capsule_configured.nailgun_smart_proxy
Expand All @@ -84,7 +85,7 @@ def test_host_registration_end_to_end(
module_capsule_configured.hostname
== rhel_contenthost.subscription_config['server']['hostname']
)
assert CLIENT_PORT == rhel_contenthost.subscription_config['server']['port']
assert constants.CLIENT_PORT == rhel_contenthost.subscription_config['server']['port']


@pytest.mark.tier3
Expand Down Expand Up @@ -125,3 +126,35 @@ def test_positive_allow_reregistration_when_dmi_uuid_changed(
).create()
result = rhel_contenthost.execute(command)
assert result.status == 0


def test_positive_update_packages_registration(
module_target_sat,
module_entitlement_manifest_org,
module_location,
rhel8_contenthost,
module_activation_key,
):
"""Test package update on host post registration
:id: 3d0a3252-ab81-4acf-bca6-253b746f26bb
:expectedresults: Package update is successful on host post registration.
:CaseLevel: Component
"""
org = module_entitlement_manifest_org
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
command = module_target_sat.api.RegistrationCommand(
organization=org,
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
location=module_location,
activation_keys=[module_activation_key.name],
update_packages=True,
).create()
result = rhel8_contenthost.execute(command)
assert result.status == 0, f'Failed to register host: {result.stderr}'

package = constants.FAKE_7_CUSTOM_PACKAGE
repo_url = settings.repos.yum_3['url']
rhel8_contenthost.create_custom_repos(fake_yum=repo_url)
result = rhel8_contenthost.execute(f"yum install -y {package}")
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
assert result.status == 0
27 changes: 17 additions & 10 deletions tests/foreman/ui/test_host.py
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ def test_positive_view_hosts_with_non_admin_user(
:expectedresults: user with only view_hosts, edit_hosts and view_organization permissions
is able to read content hosts and hosts

:CaseLevel: System
:CaseLevel: Component
"""
user_password = gen_string('alpha')
role = target_sat.api.Role(organization=[module_org]).create()
Expand Down Expand Up @@ -2418,16 +2418,19 @@ def test_positive_host_registration_with_non_admin_user(

:id: 35458bbc-4556-41b9-ba26-ae0b15179731

:expectedresults: User with register hosts permission able to do it.
:expectedresults: User with register hosts permission able to register hosts.

:CaseLevel: System
:CaseLevel: Component
"""
user_password = gen_string('alpha')
org = module_entitlement_manifest_org
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
role = target_sat.api.Role(organization=[org]).create()
target_sat.api_factory.create_role_permissions(
role, {'Organization': ['view_organizations'], 'Host': ['view_hosts', 'register_hosts']}
)

user_permissions = {
'Organization': ['view_organizations'],
'Host': ['view_hosts'],
}
target_sat.api_factory.create_role_permissions(role, user_permissions)
user = target_sat.api.User(
role=[role],
admin=False,
Expand All @@ -2437,12 +2440,12 @@ def test_positive_host_registration_with_non_admin_user(
default_organization=org,
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved
default_location=module_location,
).create()
# created_host = target_sat.api.Host(location=module_location, organization=org).create()
role = target_sat.cli.Role.info({'name': 'Register hosts'})
target_sat.cli.User.add_role({'id': user.id, 'role-id': role['id']})

with Session(test_name, user=user.login, password=user_password) as session:
host = session.host.get_details(rhel8_contenthost.name, widget_names='breadcrumb')
assert host['breadcrumb'] == rhel8_contenthost.name
Gauravtalreja1 marked this conversation as resolved.
Show resolved Hide resolved

cmd = session.host.get_register_command(
cmd = session.host_new.get_register_command(
{
'general.insecure': True,
'general.activation_keys': module_activation_key.name,
Expand All @@ -2451,3 +2454,7 @@ def test_positive_host_registration_with_non_admin_user(

result = rhel8_contenthost.execute(cmd)
assert result.status == 0, f'Failed to register host: {result.stderr}'

# Verify server.hostname and server.port from subscription-manager config
assert target_sat.hostname == rhel8_contenthost.subscription_config['server']['hostname']
assert constants.CLIENT_PORT == rhel8_contenthost.subscription_config['server']['port']
Loading