#!/usr/bin/python3 # checkpoint: # 1. Selected components in edit blueprint page # 2. Package detail and add, remove, apply package from detail page import composerlib import testlib @testlib.nondestructive class TestDependence(composerlib.ComposerCase): def testComponent(self): b = self.browser self.login_and_go("/composer", superuser=True) b.wait_present("#main") # go to edit package page b.click("li[data-blueprint=openssh-server] a:contains('Edit Packages')") with b.wait_timeout(120): b.wait_present("ul[aria-label='Available Components'] li:nth-child(1)") # open component detail b.click("#openssh-server-toggle") b.wait_attr("#openssh-server-toggle", "aria-expanded", "true") # Disable this part of test due to issue # https://github.com/osbuild/cockpit-composer/issues/942 # # depsolving dependencies needs more time # with b.wait_timeout(480): # b.wait_present(".cc-component-summary__deps") # # show all # b.click("button:contains('Show All')") # # show less # b.click("button:contains('Show Less')") # close detail b.click("#openssh-server-toggle") b.wait_not_visible("#openssh-server-details") # dependencies tab b.click("#blueprint-tabs-tab-dependencies") b.wait_visible("#blueprint-tabs-pane-dependencies") # collect code coverage result self.check_coverage() def testDetails(self): b = self.browser self.login_and_go("/composer", superuser=True) b.wait_present("#main") # go to edit package page b.click("li[data-blueprint=openssh-server] a:contains('Edit Packages')") with b.wait_timeout(120): b.wait_present("ul[aria-label='Available Components'] li:nth-child(1)") # view openssh-server package detail b.click("#openssh-server-kebab") b.wait_attr("#openssh-server-kebab", "aria-expanded", "true") b.click("ul[aria-labelledby=openssh-server-kebab] a:contains('View')") # version selection # group actions for select from dropdown menu b.wait_visible("#cmpsr-compon__version-select") version_selector = "#cmpsr-compon__version-select option[value='1']" b.wait_present(version_selector) value_id = b.attr(version_selector, "value") b.set_val("#cmpsr-compon__version-select", value_id) b.wait_val("#cmpsr-compon__version-select", value_id) # group actions end b.click("button:contains('Apply Change')") b.wait_present("a:contains('1 Pending Change')") # search for openssh-server pacakge b.set_input_text("#cmpsr-blueprint-input-filter", "tmux") b.key_press("\r") with b.wait_timeout(120): b.click("#tmux-input") b.wait_visible("#cmpsr-compon__version-select") b.click("#blueprint-tabs-tab-dependencies") # add tmux to blueprint b.click(".cmpsr-header__actions button:contains('Add')") b.wait_present("a:contains('2 Pending Change')") b.wait_present("li[data-component=tmux]") # view tmux detail b.click("li[data-component=tmux] #tmux") b.wait_visible("#cmpsr-compon__version-select") # back to openssh-server b.click("a:contains('Back to openssh-server')") b.wait_present("li[data-component=tmux]") # remove from tumx detail b.click("li[data-component=tmux] #tmux") b.wait_visible("#cmpsr-compon__version-select") b.click("button:contains('Remove')") b.wait_present("a:contains('1 Pending Change')") # collect code coverage result self.check_coverage() if __name__ == '__main__': testlib.test_main()