X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=rwlaunchpad%2Fra%2Fpytest%2Fns%2Fgui_tests%2Ftest_launchpad_ui.py;fp=rwlaunchpad%2Fra%2Fpytest%2Fns%2Fgui_tests%2Ftest_launchpad_ui.py;h=dd4e32e02a5bab03d6105490861dae3a5235e38b;hb=4870d0ee29789b859931e4e2c73e13dcb29537d5;hp=0000000000000000000000000000000000000000;hpb=6f1a3fe149e4a6b9803382cb299c902f4cf58ec9;p=osm%2FSO.git diff --git a/rwlaunchpad/ra/pytest/ns/gui_tests/test_launchpad_ui.py b/rwlaunchpad/ra/pytest/ns/gui_tests/test_launchpad_ui.py new file mode 100755 index 00000000..dd4e32e0 --- /dev/null +++ b/rwlaunchpad/ra/pytest/ns/gui_tests/test_launchpad_ui.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python +# +# Copyright 2017 RIFT.IO 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. +# + + +import gi + +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.common.by import By + + +gi.require_version('RwUserYang', '1.0') +gi.require_version('RwProjectYang', '1.0') +gi.require_version('RwConmanYang', '1.0') + +from gi.repository import ( + RwUserYang, + RwProjectYang, + RwConmanYang +) + +gi.require_version('RwKeyspec', '1.0') +from gi.repository.RwKeyspec import quoted_key + + +class TestGUI(object): + """TestGUI.""" + + def click_element_and_wait(self, driver, key_word, wait=True): + """Click and wait for that element to appear.""" + path = "//a[text()={}]".format(quoted_key(key_word)) + driver.find_element_by_xpath(path).click() + if wait is True: + WebDriverWait(driver, 10).until( + EC.presence_of_element_located(( + By.XPATH, path))) + + def click_button(self, driver, key_word): + """Click a button.""" + path = "//div[text()={}]".format(quoted_key(key_word)) + driver.find_element_by_xpath(path).click() + + def input_value(self, driver, data_reactid, value): + """Input values to field.""" + path = "//input[@data-reactid={}]".format(quoted_key(data_reactid)) + driver.find_element_by_xpath(path).send_keys(value) + + def test_basic_checks( + self, driver, logger, rw_project_proxy, rw_user_proxy): + """test_basic_checks.""" + logger.debug('Check access to all basic pages.') + basic_pages = ( + ['Accounts', 'Catalog', 'Launchpad', 'ADMINISTRATION', + 'PROJECT: default', 'admin']) + for key_word in basic_pages: + self.click_element_and_wait(driver, key_word) + + logger.debug('Create a test project.') + self.click_element_and_wait(driver, 'ADMINISTRATION') + self.click_element_and_wait(driver, 'Project Management', wait=False) + self.click_button(driver, 'Add Project') + self.input_value(driver, '.0.4.0.1.0.4.0.0.1.0.1', 'test_project') + self.click_button(driver, 'Create') + + logger.debug('Verify test project is created in ui.') + path = "//div[text()={}]".format(quoted_key('test_project')) + WebDriverWait(driver, 10).until( + EC.presence_of_element_located(( + By.XPATH, path))) + + logger.debug('Verify test project is created in config.') + project_cm_config_xpath = '/project[name={}]/project-state' + project_ = rw_project_proxy.get_config( + project_cm_config_xpath.format( + quoted_key('test_project')), list_obj=True) + assert project_ + + logger.debug('Create a test user.') + self.click_element_and_wait(driver, 'ADMINISTRATION') + self.click_element_and_wait(driver, 'User Management', wait=False) + self.click_button(driver, 'Add User') + self.input_value(driver, '.0.4.0.1.1.0.4.0.0.1.0.1', 'test_user') + self.input_value(driver, '.0.4.0.1.1.0.4.0.3.1.0.1', 'mypasswd') + self.input_value(driver, '.0.4.0.1.1.0.4.0.3.1.1.1', 'mypasswd') + self.click_button(driver, 'Create') + + logger.debug('Verify test user is created in ui.') + path = "//div[text()={}]".format(quoted_key('test_user')) + WebDriverWait(driver, 10).until( + EC.presence_of_element_located(( + By.XPATH, path))) + + logger.debug('Verify test user is created in config.') + user_config_xpath = ( + '/user-config/user[user-name={user_name}][user-domain={domain}]') + user_ = rw_user_proxy.get_config( + user_config_xpath.format( + user_name=quoted_key('test_user'), + domain=quoted_key('system'))) + assert user_