Skip to content

Commit ccc9e0e

Browse files
authored
Fix ContentView view (SatelliteQE#1734) (SatelliteQE#1734)
There were few minor fixes needed for new contentview view and entities. Contentview Views: 1. version_dropdown = Dropdown( locator='.//div[@data-ouia-component-id="cv-version-header-actions-dropdown"]' ) locator was mentioned twice in views which could be confusing. 2. Fixed lce_selector locator. Contentview Entities: 1. Renamed version_name variable to version to maintain consistency in the module. 2. def promote does not handle errors in case incorrect lce or invalid promote happens, added a check for handing and reading the error message. 3. There is no lce variable in views so updated it to lce_selector. 4. Updated class PromoteContentViewVersion in views
1 parent c093900 commit ccc9e0e

3 files changed

Lines changed: 26 additions & 19 deletions

File tree

airgun/entities/contentview_new.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -262,19 +262,24 @@ def republish_metadata_error(self, entity_name, version):
262262
return True
263263
return 'No error was found, metadata unexpectedly was able to be published.'
264264

265-
def promote(self, entity_name, version_name, lce_name):
265+
def promote(self, entity_name, version, lce_name, err_message=''):
266266
"""Promotes the selected version of content view to given environment.
267267
:return: dict with new content view version table row; contains keys
268268
like 'Version', 'Status', 'Environments' etc.
269269
"""
270-
view = self.navigate_to(self, 'Promote', entity_name=entity_name, version_name=version_name)
270+
view = self.navigate_to(self, 'Promote', entity_name=entity_name, version=version)
271271
modal = ContentViewVersionPromoteView(self.browser)
272272
if modal.is_displayed:
273-
modal.lce.fill({lce_name: True})
273+
modal.lce_selector.fill({lce_name: True})
274274
modal.promote_btn.click()
275+
if err_message:
276+
view.flash.wait_displayed()
277+
message = view.flash.read()
278+
return message
275279
view = self.navigate_to(self, 'Edit', entity_name=entity_name)
276-
view.versions.search(version_name)
277-
return view.versions.table.row(version=version_name).read()
280+
view.wait_displayed()
281+
view.versions.search(version)
282+
return view.versions.table.row(version=version).read()
278283

279284
def update(self, entity_name, values):
280285
"""Update existing content view"""
@@ -326,12 +331,12 @@ class EditContentView(NavigateStep):
326331

327332
VIEW = ContentViewEditView
328333

329-
def prerequisite(self, *args, **kwargs):
330-
return self.navigate_to(self.obj, 'All')
334+
prerequisite = NavigateToSibling('All')
331335

332336
def step(self, *args, **kwargs):
333337
entity_name = kwargs.get('entity_name')
334-
self.parent.search(entity_name)
338+
self.parent.search.search(entity_name)
339+
self.parent.table.wait_displayed()
335340
self.parent.table.row(name=entity_name)['Name'].widget.click()
336341

337342

@@ -349,6 +354,7 @@ def step(self, *args, **kwargs):
349354
self.parent.versions.wait_displayed()
350355
self.parent.versions.search(version)
351356
self.parent.versions.table.wait_displayed()
357+
self.parent.versions.search(version).click()
352358
self.parent.versions.table.row(version=version)['Version'].widget.click()
353359

354360

@@ -385,8 +391,8 @@ def prerequisite(self, *args, **kwargs):
385391
return self.navigate_to(self.obj, 'Edit', entity_name=kwargs.get('entity_name'))
386392

387393
def step(self, *args, **kwargs):
388-
version_name = kwargs.get('version_name')
394+
version = kwargs.get('version')
389395
self.parent.versions.wait_displayed()
390-
self.parent.versions.search(version_name)
391-
self.parent.version.table.wait_displayed()
396+
self.parent.versions.search(version)
397+
self.parent.versions.table.wait_displayed()
392398
self.parent.versions.table[0][7].widget.item_select('Promote')

airgun/views/common.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from functools import partial
2-
31
from selenium.common.exceptions import ElementNotInteractableException
42
from widgetastic.widget import (
53
Checkbox,
@@ -15,7 +13,7 @@
1513
from widgetastic_patternfly import BreadCrumb, Tab, TabWithDropdown
1614
from widgetastic_patternfly4 import Button
1715
from widgetastic_patternfly4.navigation import Navigation
18-
from widgetastic_patternfly5 import OptionsMenu
16+
from widgetastic_patternfly5 import Dropdown as PF5Dropdown
1917
from widgetastic_patternfly5.ouia import (
2018
Dropdown as PF5OUIADropdown,
2119
PatternflyTable,
@@ -336,9 +334,11 @@ class PF5LCECheckSelectorGroup(PF5LCESelectorGroup):
336334

337335

338336
# PF5 kebab menu present in table rows
339-
TableRowKebabMenu = partial(
340-
OptionsMenu, './/button[contains(@data-ouia-component-type, "MenuToggle")]/..'
341-
)
337+
class TableRowKebabMenu(PF5Dropdown):
338+
"""Dropdown that supports both PF5 dropdown and menu-toggle kebab buttons."""
339+
340+
ROOT = '.'
341+
TOGGLE = './/button[contains(@class, "pf-v5-c-menu-toggle") and contains(@aria-label, "Kebab toggle")]'
342342

343343

344344
class PF5LCEGroup(ParametrizedLocator):

airgun/views/contentview_new.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
BaseLoggedInView,
2020
NewAddRemoveResourcesView,
2121
PF5LCECheckSelectorGroup,
22-
PF5LCESelectorGroup,
2322
SearchableViewMixinPF4,
2423
TableRowKebabMenu,
2524
)
@@ -73,6 +72,7 @@ def is_displayed(self):
7372
class ContentViewTableView(BaseLoggedInView, SearchableViewMixinPF4):
7473
title = PF5Text(component_id='cvPageHeaderText')
7574
create_content_view = PF5Button(component_id='create-content-view')
75+
search = PF4Search()
7676
table = ExpandableTable(
7777
component_id='content-views-table',
7878
column_widgets={
@@ -227,6 +227,7 @@ class ContentViewVersionPublishView(BaseLoggedInView):
227227
close_button = Button('Close')
228228
progressbar = PF5ProgressBar()
229229
lce_selector = ParametrizedView.nested(PF5LCECheckSelectorGroup)
230+
close = Button('Close')
230231

231232
@property
232233
def is_displayed(self):
@@ -257,7 +258,7 @@ class ContentViewVersionPromoteView(Modal):
257258
ROOT = './/div[@data-ouia-component-id="promote-version"]'
258259

259260
description = Text('.//h2[@data-ouia-component-id="description-text-value"]')
260-
lce_selector = ParametrizedView.nested(PF5LCESelectorGroup)
261+
lce_selector = ParametrizedView.nested(PF5LCECheckSelectorGroup)
261262
promote_btn = Button(locator='//button[normalize-space(.)="Promote"]')
262263
cancel_btn = Button(locator='//button[normalize-space(.)="Cancel"]')
263264

0 commit comments

Comments
 (0)