
This reworks the gerrit testing slightly to give some broader coverage. It sets up ssh keys for the user; not really necessary but can be helpful when interacting on a held host. It sets up groups and verification labels just so Zuul can comment with -2/+2; again this is not really necessary, but makes things a little closer to production reality. We make multiple changes, so we can better test navigating between them. The change comments are updated to have some randomness in them so they don't all look the same. We take screen shots of two change pages to validate the navigation between them. Change-Id: I60b869e4fdcf8849de836e33db643743128f8a70
73 lines
2.7 KiB
Python
73 lines
2.7 KiB
Python
# Copyright 2018 Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from selenium import webdriver
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
from selenium.common.exceptions import TimeoutException
|
|
import time
|
|
|
|
testinfra_hosts = [
|
|
'review01.openstack.org',
|
|
]
|
|
|
|
|
|
def test_gerrit_listening(host):
|
|
gerrit_web = host.socket("tcp://:::8081")
|
|
assert gerrit_web.is_listening
|
|
|
|
def test_gerrit_screenshot(host):
|
|
driver = webdriver.Remote(
|
|
command_executor='http://%s:4444/wd/hub' % (host.backend.get_hostname()),
|
|
desired_capabilities=webdriver.DesiredCapabilities.FIREFOX)
|
|
|
|
try:
|
|
driver.get("http://localhost:8081")
|
|
WebDriverWait(driver, 30).until(lambda driver: driver.execute_script(
|
|
'return document.readyState') == 'complete')
|
|
# NOTE(ianw): The page doesn't really seem to be complete at
|
|
# this point, not sure what to listen for...
|
|
time.sleep(5)
|
|
driver.save_screenshot("/var/log/screenshots/gerrit-main-page.png")
|
|
|
|
for change in (1, 2):
|
|
driver.get("http://localhost:8081/c/test-project/+/%s" % change)
|
|
time.sleep(5)
|
|
driver.execute_script(
|
|
"document.querySelector('gr-app').shadowRoot"
|
|
".querySelector('gr-app-element').shadowRoot"
|
|
".querySelector('main')"
|
|
".querySelector('gr-change-view').shadowRoot"
|
|
".querySelector('paper-tab[data-name=\"change-view-tab-header-zuul-results-summary\"]')"
|
|
".click()"
|
|
)
|
|
time.sleep(5)
|
|
|
|
original_size = driver.get_window_size()
|
|
required_width = driver.execute_script(
|
|
'return document.body.parentNode.scrollWidth')
|
|
required_height = driver.execute_script(
|
|
'return document.body.parentNode.scrollHeight') + 100
|
|
driver.set_window_size(required_width, required_height)
|
|
|
|
driver.find_element_by_tag_name('body'). \
|
|
screenshot("/var/log/screenshots/gerrit-change-page-%s.png" % change)
|
|
|
|
driver.set_window_size(
|
|
original_size['width'], original_size['height'])
|
|
|
|
except TimeoutException as e:
|
|
raise e
|
|
finally:
|
|
driver.quit()
|