|
Packit Service |
eebd6f |
#!/usr/bin/python3
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# checkpoint:
|
|
Packit Service |
eebd6f |
# 1. check default source
|
|
Packit Service |
eebd6f |
# 2. add new source
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
import composerlib
|
|
Packit Service |
eebd6f |
import testlib
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
@testlib.nondestructive
|
|
Packit Service |
eebd6f |
class TestSource(composerlib.ComposerCase):
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
def testBasic(self):
|
|
Packit Service |
eebd6f |
b = self.browser
|
|
Packit Service |
eebd6f |
m = self.machine
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# new repo info
|
|
Packit Service |
eebd6f |
repo_url = "https://download.copr.fedorainfracloud.org/results" \
|
|
Packit Service |
eebd6f |
"/xiaofwan/sway-copr/fedora-31-x86_64"
|
|
Packit Service |
eebd6f |
repo_name = "sway-copr"
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
0c2606 |
self.login_and_go("/composer", superuser=True)
|
|
Packit Service |
eebd6f |
b.wait_present("#main")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# open manage sources dialog
|
|
Packit Service |
eebd6f |
drop_down_sel = ".toolbar-pf-action-right #dropdownKebab"
|
|
Packit Service |
eebd6f |
b.click(drop_down_sel)
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "true")
|
|
Packit Service |
eebd6f |
b.click("a:contains('Manage Sources')")
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "false")
|
|
Packit Service |
eebd6f |
b.wait_present("#cmpsr-modal-manage-sources")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# check default loaded sources
|
|
Packit Service |
eebd6f |
sources = m.execute("composer-cli sources list").split()
|
|
Packit Service |
eebd6f |
for source in sources:
|
|
Packit Service |
eebd6f |
b.wait_present("div[data-source={}]".format(source))
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# add new source
|
|
Packit Service |
eebd6f |
b.click("input[value='Add Source']")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# can't add srouce if type is empty
|
|
Packit Service |
eebd6f |
b.set_input_text("#textInput1-modal-source", repo_name)
|
|
Packit Service |
eebd6f |
b.set_input_text("#textInput2-modal-source", repo_url)
|
|
Packit Service |
eebd6f |
b.wait_attr("button:contains('Add Source')", "disabled", "")
|
|
Packit Service |
eebd6f |
b.click("button:contains('Cancel')")
|
|
Packit Service |
eebd6f |
# new source
|
|
Packit Service |
eebd6f |
b.click("input[value='Add Source']")
|
|
Packit Service |
eebd6f |
b.set_input_text("#textInput1-modal-source", repo_name)
|
|
Packit Service |
eebd6f |
b.set_input_text("#textInput2-modal-source", repo_url)
|
|
Packit Service |
eebd6f |
# group actions for select from dropdown menu
|
|
Packit Service |
eebd6f |
dropdown_menu_sel = "#textInput3-modal-source"
|
|
Packit Service |
eebd6f |
b.wait_visible(dropdown_menu_sel)
|
|
Packit Service |
eebd6f |
test_selector = "{} option[value='yum-baseurl']".format(dropdown_menu_sel)
|
|
Packit Service |
eebd6f |
b.wait_present(test_selector)
|
|
Packit Service |
eebd6f |
value_id = b.attr(test_selector, "value")
|
|
Packit Service |
eebd6f |
b.set_val(dropdown_menu_sel, value_id)
|
|
Packit Service |
eebd6f |
b.wait_val(dropdown_menu_sel, value_id)
|
|
Packit Service |
eebd6f |
# groups action done
|
|
Packit Service |
eebd6f |
b.click("button:contains('Add Source')")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# HACK: workaround issue https://github.com/osbuild/cockpit-composer/issues/989
|
|
Packit Service |
eebd6f |
# open manage source again to continue running test
|
|
Packit Service |
eebd6f |
if b.cdp.browser == "firefox":
|
|
Packit Service |
eebd6f |
# open manage sources dialog
|
|
Packit Service |
0c2606 |
b.wait_not_present("#cmpsr-modal-manage-sources")
|
|
Packit Service |
eebd6f |
b.click(drop_down_sel)
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "true")
|
|
Packit Service |
eebd6f |
b.click("a:contains('Manage Sources')")
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "false")
|
|
Packit Service |
eebd6f |
b.wait_present("#cmpsr-modal-manage-sources")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# endit new source to enable check SSL certificate and GPG key
|
|
Packit Service |
eebd6f |
b.click("button[aria-label='Edit Source {}']".format(repo_name))
|
|
Packit Service |
eebd6f |
# SSL certificate
|
|
Packit Service |
eebd6f |
b.click("#checkboxInput4-modal-source")
|
|
Packit Service |
eebd6f |
# GPG key
|
|
Packit Service |
eebd6f |
b.click("#checkboxInput5-modal-source")
|
|
Packit Service |
eebd6f |
b.click("button:contains('Update Source')")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# package from new added repo is here already
|
|
Packit Service |
eebd6f |
b.click("button:contains('Close')")
|
|
Packit Service |
eebd6f |
b.click("li[data-blueprint=openssh-server] a:contains('Edit Packages')")
|
|
Packit Service |
eebd6f |
# wait for all available compontents visible
|
|
Packit Service |
eebd6f |
with b.wait_timeout(300):
|
|
Packit Service |
eebd6f |
b.wait_present("ul[data-list=inputs]")
|
|
Packit Service |
eebd6f |
# search for kanshi which exists in added repo only
|
|
Packit Service |
eebd6f |
b.set_input_text("#cmpsr-blueprint-input-filter", "kanshi")
|
|
Packit Service |
eebd6f |
b.key_press("\r")
|
|
Packit Service |
eebd6f |
with b.wait_timeout(120):
|
|
Packit Service |
eebd6f |
b.wait_text("#kanshi-input", "kanshi")
|
|
Packit Service |
eebd6f |
# new added reop works, go back
|
|
Packit Service |
eebd6f |
# click back to blueprint link
|
|
Packit Service |
eebd6f |
b.click("a:contains('Back to Blueprints')")
|
|
Packit Service |
eebd6f |
# go to manage source
|
|
Packit Service |
eebd6f |
b.click(drop_down_sel)
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "true")
|
|
Packit Service |
eebd6f |
b.click("a:contains('Manage Sources')")
|
|
Packit Service |
eebd6f |
b.wait_attr(drop_down_sel, "aria-expanded", "false")
|
|
Packit Service |
eebd6f |
b.wait_present("#cmpsr-modal-manage-sources")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# duplicated source can't be added
|
|
Packit Service |
eebd6f |
b.click("input[value='Add Source']")
|
|
Packit Service |
eebd6f |
b.set_input_text("#textInput2-modal-source", repo_url)
|
|
Packit Service |
eebd6f |
b.wait_text("#textInput2-modal-source-help", "This source path already exists.")
|
|
Packit Service |
eebd6f |
b.click("button:contains('Cancel')")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# delete added source
|
|
Packit Service |
eebd6f |
delete_drop_down_sel = "button[aria-label='Source Actions {}']".format(repo_name)
|
|
Packit Service |
eebd6f |
b.click(delete_drop_down_sel)
|
|
Packit Service |
eebd6f |
b.wait_attr(delete_drop_down_sel, "aria-expanded", "true")
|
|
Packit Service |
eebd6f |
b.click("a:contains('Remove Source')")
|
|
Packit Service |
eebd6f |
b.wait_not_present("div[data-source={}]".format(repo_name))
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# close manage source dialog
|
|
Packit Service |
eebd6f |
b.click("#cmpsr-modal-manage-sources .close")
|
|
Packit Service |
eebd6f |
b.wait_not_present("#cmpsr-modal-manage-sources")
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
# collect code coverage result
|
|
Packit Service |
eebd6f |
self.check_coverage()
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
|
|
Packit Service |
eebd6f |
if __name__ == '__main__':
|
|
Packit Service |
eebd6f |
testlib.test_main()
|