
Fix WebUI tests for application creation and tests for checking catalog features. Commit should be merged after https://review.openstack.org/#/c/94614/ because archiving packages was moved from tests to jobs. Change-Id: Iab86775bbda3ddfc1800d8024fd1eb782e02eafe
1180 lines
47 KiB
Python
1180 lines
47 KiB
Python
import os
|
|
import sys
|
|
sys.path.append(os.getcwd())
|
|
|
|
import selenium.webdriver.common.by as by
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
import testtools
|
|
|
|
from base import UITestCase
|
|
|
|
|
|
class UISanityTests(UITestCase):
|
|
|
|
def test_001_create_delete_environment(self):
|
|
"""
|
|
Test check ability to create and delete environment
|
|
|
|
Scenario:
|
|
1. Create environment
|
|
2. Navigate to this environment
|
|
3. Go back to environment list and delete created environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test_create_del_env')
|
|
self.driver.find_element_by_link_text('test_create_del_env').click()
|
|
|
|
self.delete_environment('test_create_del_env')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'test_create_del_env'))
|
|
|
|
def test_002_edit_environment(self):
|
|
"""
|
|
Test check ability to change environment name
|
|
|
|
Scenario:
|
|
1. Create environment
|
|
2. Change environment's name
|
|
3. Check that there is renamed environment is in environment list
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test_edit_env')
|
|
self.driver.find_element_by_link_text('test_edit_env')
|
|
|
|
self.edit_environment(old_name='test_edit_env', new_name='edited_env')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'edited_env'))
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'test_edit_env'))
|
|
|
|
def test_003_rename_image(self):
|
|
"""
|
|
Test check ability to mark murano image
|
|
|
|
Scenario:
|
|
1. Navigate to Images page
|
|
2. Click on button "Mark Image"
|
|
3. Fill the form and submit it
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Images')
|
|
self.driver.find_element_by_id(
|
|
'marked_images__action_mark_image').click()
|
|
|
|
self.select_from_list('image', 'TestImageForDeletion')
|
|
self.fill_field(by.By.ID, 'id_title', 'New Image')
|
|
self.select_from_list('type', ' Windows Server 2012')
|
|
|
|
self.select_and_click_element('Mark')
|
|
|
|
def test_004_delete_image(self):
|
|
"""
|
|
Test check ability to delete image
|
|
|
|
Scenario:
|
|
1. Navigate to Images page
|
|
2. Create test image
|
|
3. Select created image and click on "Delete Metadata"
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Images')
|
|
self.driver.find_element_by_id(
|
|
'marked_images__action_mark_image').click()
|
|
|
|
self.select_from_list('image', 'TestImageForDeletion')
|
|
self.fill_field(by.By.ID, 'id_title', 'Image for deletion')
|
|
self.select_from_list('type', ' Windows Server 2012')
|
|
|
|
self.select_and_click_element('Mark')
|
|
|
|
element_id = self.get_element_id('TestImageForDeletion')
|
|
self.driver.find_element_by_id(
|
|
"marked_images__row_%s__action_delete" % element_id).click()
|
|
self.confirm_deletion()
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'TestImageForDeletion'))
|
|
|
|
def test_005_check_image_info(self):
|
|
"""
|
|
Test check ability to view image details
|
|
|
|
Scenario:
|
|
1. Navigate to Images page
|
|
2. Create test image
|
|
3. Click on the name of selected image, check image info
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Images')
|
|
self.driver.find_element_by_id(
|
|
'marked_images__action_mark_image').click()
|
|
|
|
self.select_from_list('image', 'TestImageForDeletion')
|
|
self.fill_field(by.By.ID, 'id_title', 'TestImage')
|
|
self.select_from_list('type', ' Windows Server 2012')
|
|
|
|
self.select_and_click_element('Mark')
|
|
|
|
self.driver.find_element_by_link_text('TestImageForDeletion').click()
|
|
self.assertIn('{"type": "windows.2012", "title": "TestImage"}',
|
|
self.driver.page_source)
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_006_create_and_delete_demo_service(self):
|
|
"""
|
|
Test check ability to create and delete demo service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create demo service in this environment by filling
|
|
the creation form
|
|
4. Delete demo service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Application').click()
|
|
self.create_demo_service('DemoService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'DemoService'))
|
|
|
|
self.delete_component('DemoService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'DemoService'))
|
|
|
|
def test_007_create_and_delete_linux_telnet(self):
|
|
"""
|
|
Test check ability to create and delete Linux Telnet service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog'
|
|
2. Click on 'Quick Deploy' for Telnet application
|
|
3. Create Linux Telnet app by filling the creation form
|
|
4. Delete Linux Telnet app from environment
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
telnet_id = self.get_element_id('Telnet')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.create_linux_telnet('linuxtelnet', telnet_id)
|
|
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'linuxtelnet'))
|
|
self.delete_component('linuxtelnet')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'linuxtelnet'))
|
|
|
|
def test_008_create_and_delete_linux_apache(self):
|
|
"""
|
|
Test check ability to create and delete Linux Apache service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog'
|
|
2. Click on 'Quick Deploy' for Apache application
|
|
3. Create Linux Apache app by filling the creation form
|
|
4. Delete Linux Apache app from environment
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
apache_id = self.get_element_id('Apache HTTP Server')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.create_linux_apache('linuxapache', apache_id)
|
|
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'linuxapache'))
|
|
self.delete_component('linuxapache')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'linuxapache'))
|
|
|
|
def test_009_create_and_delete_ad_service(self):
|
|
"""
|
|
Test check ability to create and delete Active Directory service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog'
|
|
2. Click on 'Quick Deploy' for Active Directory application
|
|
3. Create Active Directory app by filling the creation form
|
|
4. Delete Active Directory app from environment
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
ad_id = self.get_element_id('Active Directory')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.select_and_click_action_for_app('quick-add', ad_id)
|
|
self.create_ad_service('muranotest.domain')
|
|
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'muranotest.domain'))
|
|
|
|
self.delete_component('muranotest.domain')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'muranotest.domain'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_010_create_and_delete_iis_service(self):
|
|
"""
|
|
Test check ability to create and delete IIS service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create IIS service in this environment by filling
|
|
the creation form
|
|
4. Delete IIS service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_iis_service('IISService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'IISService'))
|
|
self.delete_component('IISService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'IISService'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_011_create_and_delete_asp_service(self):
|
|
"""
|
|
Test check ability to create and delete ASP.Net service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create ASP.Net service in this environment by filling
|
|
the creation form
|
|
4. Delete ASP.Net service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_asp_service('ASPService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'ASPService'))
|
|
|
|
self.delete_component('ASPService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'ASPService'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_012_create_and_delete_iisfarm_service(self):
|
|
"""
|
|
Test check ability to create and delete IIS Farm service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create IIS Farm service in this environment by filling
|
|
the creation form
|
|
4. Delete IIS Farm service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_iisfarm_service('IISFarmService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'IISFarmService'))
|
|
|
|
self.delete_component('IISFarmService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'IISFarmService'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_013_create_and_delete_aspfarm_service(self):
|
|
"""
|
|
Test check ability to create and delete ASP.Net Farm service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create ASP.Net Farm service in this environment by filling
|
|
the creation form
|
|
4. Delete ASP.Net Farm service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_aspfarm_service('ASPFarmService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'ASPFarmService'))
|
|
|
|
self.delete_component('ASPFarmService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'ASPFarmService'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_014_create_and_delete_mssql_service(self):
|
|
"""
|
|
Test check ability to create and delete MSSQL service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create MSSQL service in this environment by filling
|
|
the creation form
|
|
4. Delete MSSQL service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_mssql_service('MSSQLService')
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('test')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'MSSQLService'))
|
|
|
|
self.delete_component('MSSQLService')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'MSSQLService'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_015_create_and_delete_sql_cluster_service(self):
|
|
"""
|
|
Test check ability to create and delete MSSQL cluster service
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment
|
|
3. Create MSSQL cluster service in this environment by filling
|
|
the creation form
|
|
4. Delete MSSQL cluster service from environment
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.create_ad_service('activeDirectory.mssql')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'activeDirectory.mssql'))
|
|
|
|
self.driver.find_element_by_link_text('Create Service').click()
|
|
self.create_sql_cluster_service('SQLCluster', 'activeDirectory.mssql')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'SQLCluster'))
|
|
|
|
self.delete_component('SQLCluster')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'SQLCluster'))
|
|
|
|
def test_016_create_and_delete_tomcat_service(self):
|
|
"""
|
|
Test check ability to create and delete Tomcat service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog'
|
|
2. Click on 'Quick Deploy' for Tomcat application
|
|
3. Firstly, create PostgreSQL app by filling the creation form
|
|
4. Create Tomcat app, in case of database select created
|
|
early PostgreSQL
|
|
5. Delete Tomcat app from environment
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
tomcat_id = self.get_element_id('Apache Tomcat')
|
|
postgre_id = self.get_element_id('PostgreSQL')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
env_id = self.get_element_id('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.select_and_click_action_for_app('add/{0}'.format(env_id),
|
|
postgre_id)
|
|
self.create_postgreSQL_service('PostgreSQL')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'InputSubmit')).click()
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'PostgreSQL'))
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.select_and_click_action_for_app('add/{0}'.format(env_id),
|
|
tomcat_id)
|
|
|
|
self.create_tomcat_service('tomcat-serv', 'PostgreSQL')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'tomcat-serv'))
|
|
self.delete_component('tomcat-serv')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'tomcat-serv'))
|
|
|
|
def test_017_create_and_delete_postgreSQL_service(self):
|
|
"""
|
|
Test check ability to create and delete PostgreSQL service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog'
|
|
2. Click on 'Quick Deploy' for PostgreSQL application
|
|
3. Create PostgreSQL app by filling the creation form
|
|
4. Delete PostgreSQL app from environment
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
postgresql_id = self.get_element_id('PostgreSQL')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.select_and_click_action_for_app('quick-add', postgresql_id)
|
|
self.create_postgreSQL_service('PostgreSQL')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'PostgreSQL'))
|
|
|
|
self.delete_component('PostgreSQL')
|
|
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'PostgreSQL'))
|
|
|
|
@testtools.skip("https://bugs.launchpad.net/murano/+bug/1321690")
|
|
def test_018_check_regex_expression_for_ad_name(self):
|
|
"""
|
|
Test check that validation of domain name field work and appropriate
|
|
error message is appeared after entering incorrect domain name
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create AD service
|
|
3. Set "a" as a domain name and verify error message
|
|
4. Set "aa" as a domain name and check that error message
|
|
didn't appear
|
|
5. Set "@ct!v3" as a domain name and verify error message
|
|
6. Set "active.com" as a domain name and check that error message
|
|
didn't appear
|
|
7. Set "domain" as a domain name and verify error message
|
|
8. Set "domain.com" as a domain name and check that error message
|
|
didn't appear
|
|
9. Set "morethan15symbols.beforedot" as a domain name and
|
|
verify error message
|
|
10. Set "lessthan15.beforedot" as a domain name and check that
|
|
error message didn't appear
|
|
11. Set ".domain.local" as a domain name and
|
|
verify error message
|
|
12. Set "domain.local" as a domain name and check that
|
|
error message didn't appear
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
ad_id = self.get_element_id('Active Directory')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.select_and_click_action_for_app('quick-add', ad_id)
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='a')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Ensure this value has at least 2 characters (it has 1).', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='aa')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Ensure this value has at least 2 characters (it has 1).', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='@ct!v3')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Only letters, numbers and dashes in the middle are allowed.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='active.com')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Only letters, numbers and dashes in the middle are allowed.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='domain')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Single-level domain is not appropriate.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='domain.com')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Single-level domain is not appropriate.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name',
|
|
value='morethan15symbols.beforedot')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'NetBIOS name cannot be shorter than'
|
|
' 1 symbol and longer than 15 symbols.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name',
|
|
value='lessthan15.beforedot')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'NetBIOS name cannot be shorter than'
|
|
' 1 symbol and longer than 15 symbols.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='.domain.local')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Period characters are allowed only when '
|
|
'they are used to delimit the components of domain style names', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='domain.local')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Period characters are allowed only when '
|
|
'they are used to delimit the components of domain style names', 1))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_019_check_regex_expression_for_iis_name(self):
|
|
"""
|
|
Test check that validation of iis name field work and appropriate
|
|
error message is appeared after entering incorrect name
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create IIS service
|
|
3. Set "a" as a iis name and verify error message
|
|
4. Set "aa" as a iis name and check that error message
|
|
didn't appear
|
|
5. Set "S3rv!$" as a iis name and verify error message
|
|
6. Set "Service" as a iis name and check that error message
|
|
didn't appear
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_link_text('Add Component').click()
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('apps', 'IIS')).click()
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='a')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Ensure this value has at least 2 characters (it has 1).', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='aa')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Ensure this value has at least 2 characters (it has 1).', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='S3rv!$')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Just letters, numbers, underscores and hyphens are allowed.', 1))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-name', value='Service')
|
|
self.assertFalse(self.check_that_error_message_is_correct(
|
|
'Just letters, numbers, underscores and hyphens are allowed.', 1))
|
|
|
|
def test_020_check_regex_expression_for_git_repo_field(self):
|
|
"""
|
|
Test check that validation of git repository field work and appropriate
|
|
error message is appeared after entering incorrect url
|
|
|
|
Scenario:
|
|
1. Navigate to Application Catalog > Applications
|
|
2. Start to create Tomcat service
|
|
3. Set "a" as a git repository url and verify error message
|
|
4. Set "://@:" as a git repository url and verify error message
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
tomcat_id = self.get_element_id('Apache Tomcat')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
self.select_and_click_action_for_app('quick-add', tomcat_id)
|
|
|
|
self.fill_field(by.By.ID, field='id_0-repository', value='a')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Enter a correct git repository URL', 3))
|
|
|
|
self.fill_field(by.By.ID, field='id_0-repository', value='://@:')
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Enter a correct git repository URL', 3))
|
|
|
|
def test_021_check_validation_for_hostname_template_field(self):
|
|
"""
|
|
Test check that validation of hostname template field work and
|
|
appropriate error message is appeared after entering incorrect name
|
|
|
|
Scenario:
|
|
1. Navigate to Application Catalog > Applications
|
|
2. Start to create Telnet service
|
|
3. Set "`qwe`" as a hostname template name a and verify error message
|
|
4. Set "host" as a hostname template name and
|
|
check that there is no error message
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
telnet_id = self.get_element_id('Telnet')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
|
|
self.select_and_click_action_for_app('quick-add', telnet_id)
|
|
self.fill_field(by.By.ID, 'id_0-name', 'name')
|
|
self.fill_field(by.By.ID, 'id_0-unitNamingPattern', '`qwe`')
|
|
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'ButtonSubmit')).click()
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'Enter a valid value.', 1))
|
|
|
|
self.fill_field(by.By.ID, 'id_0-unitNamingPattern', 'host')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'ButtonSubmit')).click()
|
|
|
|
WebDriverWait(self.driver, 10).until(lambda s: s.find_element(
|
|
by.By.ID, 'id_1-osImage').is_displayed())
|
|
|
|
@testtools.skip("New UI in progress")
|
|
def test_022_check_bool_field_validation(self):
|
|
"""
|
|
Test check that validation of bool field work
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create mssql cluster service
|
|
3. Select externalAD and fill fields with incorrect values
|
|
4. Unselect externalAD and click on Next, second step of wizard
|
|
should appears
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('test')
|
|
self.env_to_components_list('test')
|
|
|
|
self.driver.find_element_by_id('services__action_CreateService').click()
|
|
|
|
self.select_from_list('service_choice-service', 'MS SQL Server Cluster')
|
|
next_button = self.elements.get('button', 'Next')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
|
|
sql_cluster = 'id_msSqlClusterServer-0'
|
|
|
|
self.fill_field(by.By.ID, '{0}-name'.format(sql_cluster), 'ms-sql')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.driver.find_element_by_id(
|
|
'{0}-externalAD'.format(sql_cluster)).click()
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminUserName'.format(sql_cluster),
|
|
'user')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword-clone'.format(sql_cluster),
|
|
'anotherP@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-saPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-saPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
next_button = self.elements.get('button', 'Next2')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
self.assertTrue(self.check_that_alert_message_is_appeared(
|
|
'Active Directory Passwords don\'t match'))
|
|
|
|
self.driver.find_element_by_id(
|
|
'{0}-externalAD'.format(sql_cluster)).click()
|
|
|
|
self.assertTrue(self.check_that_error_message_is_correct(
|
|
'This field is required.', 1))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_023_positive_scenario_1_for_the_MS_SQL_Cluster_Form(self):
|
|
"""
|
|
Test check one possible scenario of creation mssql cluster
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create mssql cluster service
|
|
3. External AD and Mixed-Mode Auth checkboxes
|
|
are not selected. User select created earlier domain.
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('scenario_1')
|
|
self.env_to_components_list('scenario_1')
|
|
|
|
self.create_ad_service('activeDirectory.mssql')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'activeDirectory.mssql'))
|
|
|
|
self.driver.find_element_by_link_text('Create Service').click()
|
|
|
|
self.select_from_list('service_choice-service', 'MS SQL Server Cluster')
|
|
next_button = self.elements.get('button', 'Next')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
|
|
sql_cluster = 'id_msSqlClusterServer-0'
|
|
|
|
self.fill_field(by.By.ID, '{0}-name'.format(sql_cluster), 'ms-sql')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
self.select_from_list('msSqlClusterServer-0-domain',
|
|
'activeDirectory.mssql')
|
|
|
|
self.driver.find_element_by_id(
|
|
'{0}-mixedModeAuth'.format(sql_cluster)).click()
|
|
|
|
next_button = self.elements.get('button', 'Next2')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_024_positive_scenario_2_for_the_MS_SQL_Cluster_Form(self):
|
|
"""
|
|
Test check one possible scenario of creation mssql cluster
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create mssql cluster service
|
|
3. External AD field is selected (and user fill
|
|
all required fields here) and Mixed-Mode Auth checkbox
|
|
is not selected.
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('scenario_2')
|
|
self.env_to_components_list('scenario_2')
|
|
|
|
self.driver.find_element_by_link_text('Create Service').click()
|
|
|
|
self.select_from_list('service_choice-service', 'MS SQL Server Cluster')
|
|
next_button = self.elements.get('button', 'Next')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
|
|
sql_cluster = 'id_msSqlClusterServer-0'
|
|
|
|
self.fill_field(by.By.ID, '{0}-name'.format(sql_cluster), 'ms-sql')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
self.driver.find_element_by_id(
|
|
'{0}-externalAD'.format(sql_cluster)).click()
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminUserName'.format(sql_cluster),
|
|
'user')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
self.driver.find_element_by_id(
|
|
'{0}-mixedModeAuth'.format(sql_cluster)).click()
|
|
|
|
next_button = self.elements.get('button', 'Next2')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
|
|
|
@testtools.skip("App is not in incubator")
|
|
def test_025_positive_scenario_3_for_the_MS_SQL_Cluster_Form(self):
|
|
"""
|
|
Test check one possible scenario of creation mssql cluster
|
|
|
|
Scenario:
|
|
1. Navigate to Environments page
|
|
2. Create environment and start to create mssql cluster service
|
|
3. External AD and Mixed-Mode Auth checkboxes are selected.
|
|
User have to fill all required fields.
|
|
"""
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('scenario_3')
|
|
self.env_to_components_list('scenario_3')
|
|
|
|
self.driver.find_element_by_link_text('Create Service').click()
|
|
|
|
self.select_from_list('service_choice-service', 'MS SQL Server Cluster')
|
|
next_button = self.elements.get('button', 'Next')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
|
|
sql_cluster = 'id_msSqlClusterServer-0'
|
|
|
|
self.fill_field(by.By.ID, '{0}-name'.format(sql_cluster), 'ms-sql')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-adminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
self.driver.find_element_by_id('{0}-externalAD').click()
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminUserName'.format(sql_cluster),
|
|
'user')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-domainAdminPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
self.fill_field(by.By.ID,
|
|
'{0}-saPassword'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
self.fill_field(by.By.ID,
|
|
'{0}-saPassword-clone'.format(sql_cluster),
|
|
'P@ssw0rd')
|
|
|
|
next_button = self.elements.get('button', 'Next2')
|
|
self.driver.find_element_by_xpath(next_button).click()
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
|
|
|
def test_026_modify_package_name(self):
|
|
"""
|
|
Test check ability to change name of the package
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Select package and click on 'Modify Package'
|
|
3. Rename package
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
self.select_action_for_package('PostgreSQL',
|
|
'modify_package')
|
|
self.fill_field(by.By.ID, 'id_name', 'PostgreSQL-modified')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'InputSubmit')).click()
|
|
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, './/*[@data-display="PostgreSQL-modified"]'))
|
|
|
|
self.select_action_for_package('PostgreSQL-modified',
|
|
'modify_package')
|
|
self.fill_field(by.By.ID, 'id_name', 'PostgreSQL')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'InputSubmit')).click()
|
|
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, './/*[@data-display="PostgreSQL"]'))
|
|
|
|
def test_040_modify_description(self):
|
|
"""
|
|
Test check ability to change description of the package
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Select package and click on 'Modify Package'
|
|
3. Change description
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
self.select_action_for_package('PostgreSQL',
|
|
'modify_package')
|
|
|
|
self.modify_package('description', 'New Description')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
self.check_element_on_page(
|
|
".//*[@class='app-description']",
|
|
'New Description')
|
|
|
|
def test_028_modify_package_add_tag(self):
|
|
"""
|
|
Test check ability to add file in composed service
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Click on "Compose Service" and create new service
|
|
3. Manage composed service: add file
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
self.select_action_for_package('PostgreSQL',
|
|
'modify_package')
|
|
|
|
self.fill_field(by.By.ID, 'id_tags', 'TEST_TAG')
|
|
self.modify_package('tags', 'TEST_TAG')
|
|
|
|
app_id = self.get_element_id('PostgreSQL')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
self.select_and_click_action_for_app('details', app_id)
|
|
self.check_element_on_page(
|
|
".//*[@id='content_body']/div[2]/div/div/div[2]/div[2]/ul/li[6]",
|
|
'TEST_TAG')
|
|
|
|
def test_029_download_package(self):
|
|
"""
|
|
Test check ability to download package from repository
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Select PostgreSQL package and click on "More>Download Package"
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
self.select_action_for_package('PostgreSQL', 'more')
|
|
self.select_action_for_package('PostgreSQL', 'download_package')
|
|
|
|
@testtools.skip("Work in progress")
|
|
def test_030_upload_package_add_to_env(self):
|
|
"""
|
|
Test check ability to upload package to repository
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Click on "Upload Package"
|
|
3. Select zip archive with package and category, submit form
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
self.click_on_package_action('upload_package')
|
|
self.choose_and_upload_files('AppForUploadTest.zip')
|
|
self.select_from_list('categories', 'Web')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'InputSubmit')).click()
|
|
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, './/*[@data-display="AppForUploadTest"]'))
|
|
|
|
def test_031_check_opportunity_to_toggle_package(self):
|
|
"""
|
|
Test check ability to make package active or inactive
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Select some package and make it inactive ("More>Toggle Package")
|
|
3. Check that package became inactive
|
|
4. Select some package and make it active ("More>Toggle Package ")
|
|
5. Check that package became active
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
self.select_action_for_package('PostgreSQL', 'more')
|
|
self.select_action_for_package('PostgreSQL', 'toggle_enabled')
|
|
|
|
self.assertTrue(self.check_package_parameter(
|
|
'PostgreSQL', '3', 'False'))
|
|
|
|
self.select_action_for_package('PostgreSQL', 'more')
|
|
self.select_action_for_package('PostgreSQL', 'toggle_enabled')
|
|
|
|
self.assertTrue(self.check_package_parameter(
|
|
'PostgreSQL', '3', 'True'))
|
|
|
|
def test_041_check_opportunity_to_delete_package(self):
|
|
"""
|
|
Test check ability to delete package from database
|
|
|
|
Scenario:
|
|
1. Navigate to 'Package Definitions' page
|
|
2. Select some package
|
|
3. Delete this package
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
package = self.get_element_id('PostgreSQL')
|
|
self.select_and_click_element(package)
|
|
|
|
self.click_on_package_action('delete_package')
|
|
self.confirm_deletion()
|
|
self.assertFalse(self.check_element_on_page(
|
|
by.By.XPATH, './/*[@data-display="PostgreSQL"]'))
|
|
|
|
def test_033_check_application_catalog_panel(self):
|
|
"""
|
|
Test checks that 'Applications' panel is operable
|
|
|
|
Scenario:
|
|
1. Create environment
|
|
2. Navigate to 'Application Catalog > Applications' panel
|
|
"""
|
|
self.go_to_submenu('Applications')
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, ".//*[@id='content_body']/div[1]/h2"))
|
|
|
|
def test_034_env_creation_form_app_catalog_page(self):
|
|
"""
|
|
Test checks that app's option 'Add to environment' is operable
|
|
when there is no previously created env. In this case creation of the
|
|
environment should start after clicking 'Add to environment' button
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog > Applications' panel
|
|
2. Click on 'Add to environment' button for some application
|
|
3. Create new environment
|
|
4. Add application in created environment
|
|
"""
|
|
self.go_to_submenu('Applications')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'AddToEnv')).click()
|
|
|
|
self.fill_field(by.By.ID, 'id_name', 'test_env')
|
|
self.driver.find_element_by_xpath(
|
|
self.elements.get('button', 'InputSubmit')).click()
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.driver.find_element_by_link_text('test_env').click()
|
|
self.assertTrue(
|
|
self.driver.find_element_by_id('services__action_AddApplication'))
|
|
|
|
def test_035_check_info_about_app(self):
|
|
"""
|
|
Test checks that information about app is available and truly.
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog > Applications' panel
|
|
2. Choose some application and click on 'More info'
|
|
3. Verify info about application
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
app_id = self.get_element_id('PostgreSQL')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
self.select_and_click_action_for_app('details', app_id)
|
|
|
|
self.assertIn('PostgreSQL is a powerful', self.driver.page_source)
|
|
self.driver.find_element_by_link_text('Requirements').click()
|
|
self.driver.find_element_by_link_text('License').click()
|
|
|
|
def test_036_check_search_option(self):
|
|
"""
|
|
Test checks that 'Search' option is operable.
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog > Applications' panel
|
|
2. Click on 'Search' panel
|
|
3. Type name of service that should be founded
|
|
3. Click on 'Go' and check result
|
|
"""
|
|
self.go_to_submenu('Applications')
|
|
self.driver.find_element_by_id('MuranoSearchPanelToggle').click()
|
|
self.fill_field(by.By.XPATH, ".//*[@name='search']", 'PARAM')
|
|
self.driver.find_element_by_xpath(
|
|
".//*[@id='MuranoSearchPanel']/form/button").click()
|
|
|
|
def test_037_filter_by_category(self):
|
|
"""
|
|
Test checks ability to filter applications by category
|
|
in Application Catalog page
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog' panel
|
|
2. Click on 'Category' panel
|
|
3. Select category and click on it
|
|
4. Verify result
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
package_category1 = self.get_element_id('PostgreSQL')
|
|
package_category2 = self.get_element_id('Active Directory')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Applications')
|
|
self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click()
|
|
self.driver.find_element_by_link_text('Databases').click()
|
|
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']".
|
|
format(package_category1)))
|
|
|
|
self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click()
|
|
self.driver.find_element_by_link_text('Microsoft Services').click()
|
|
|
|
self.assertTrue(self.check_element_on_page(
|
|
by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']".
|
|
format(package_category2)))
|
|
|
|
@testtools.skip("Work in progress")
|
|
def test_038_check_option_switch_env(self):
|
|
"""
|
|
Test checks ability to switch environment and to add app in other env
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog>Environments' panel
|
|
2. Create environment 'env1'
|
|
3. Create environment 'env2'
|
|
4. Navigate to 'Application Catalog>Application Catalog'
|
|
5. Click on 'Environment' panel
|
|
6. Switch to env2
|
|
7. Add application in env2
|
|
8. Navigate to 'Application Catalog>Environments' and go to the env2
|
|
9. Check that added application is here
|
|
"""
|
|
self.navigate_to('Manage')
|
|
self.go_to_submenu('Package Definitions')
|
|
|
|
app_id = self.get_element_id('Telnet')
|
|
|
|
self.navigate_to('Application_Catalog')
|
|
self.go_to_submenu('Environments')
|
|
self.create_environment('env1')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'env1'))
|
|
self.create_environment('env2')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'env1'))
|
|
self.go_to_submenu('Applications')
|
|
self.driver.find_element_by_id('MuranoDefaultEnvPanelToggle').click()
|
|
self.driver.find_element_by_id('environment_switcher').click()
|
|
self.driver.find_element_by_xpath(
|
|
".//*[@id='environment_list']/li[2]/a").click()
|
|
|
|
self.create_linux_telnet('linuxtelnet', app_id)
|
|
|
|
self.go_to_submenu('Environments')
|
|
self.env_to_components_list('env1')
|
|
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
|
'linuxtelnet'))
|
|
|
|
def test_039_check_statistics_panel(self):
|
|
"""
|
|
Test checks that 'Statictics' panel is operable
|
|
|
|
Scenario:
|
|
1. Navigate to 'Application Catalog > Statistics' panel
|
|
"""
|
|
self.go_to_submenu('Statistics')
|
|
self.driver.find_element_by_link_text('Murano API Servers').click()
|
|
self.driver.find_element_by_link_text(
|
|
'Murano Instance Statistics').click()
|