Merge "Increase timeout and add new test for Service Definition Tab"
This commit is contained in:
commit
ecbd5897f8
|
@ -73,8 +73,9 @@ class UITestCase(testtools.TestCase):
|
|||
self.driver = webdriver.Remote(
|
||||
command_executor=cfg.common.selenium_server,
|
||||
desired_capabilities=DesiredCapabilities.FIREFOX)
|
||||
|
||||
self.driver.get(cfg.common.horizon_url + '/')
|
||||
self.driver.implicitly_wait(10)
|
||||
self.driver.implicitly_wait(30)
|
||||
|
||||
def tearDown(self):
|
||||
super(UITestCase, self).tearDown()
|
||||
|
@ -109,7 +110,7 @@ class UITestCase(testtools.TestCase):
|
|||
self.fill_field(by.By.ID, 'id_password', cfg.common.password)
|
||||
sign_in = self.elements.get('button', 'ButtonSubmit')
|
||||
self.driver.find_element_by_xpath(sign_in).click()
|
||||
self.navigate_to_environments()
|
||||
self.driver.find_element_by_link_text('Murano').click()
|
||||
|
||||
def fill_field(self, by_find, field, value):
|
||||
self.driver.find_element(by=by_find, value=field).clear()
|
||||
|
@ -154,13 +155,9 @@ class UITestCase(testtools.TestCase):
|
|||
self.driver.find_element_by_id(
|
||||
"murano__row_%s__action_delete" % element_id).click()
|
||||
|
||||
def navigate_to_environments(self):
|
||||
def navigate_to(self, link):
|
||||
self.driver.find_element_by_link_text('Murano').click()
|
||||
self.driver.find_element_by_link_text('Environments').click()
|
||||
|
||||
def navigate_to_images(self):
|
||||
self.driver.find_element_by_link_text('Murano').click()
|
||||
self.driver.find_element_by_link_text('Images').click()
|
||||
self.driver.find_element_by_link_text('%s' % link).click()
|
||||
|
||||
def select_from_list(self, list_name, value):
|
||||
self.driver.find_element_by_xpath(
|
||||
|
@ -440,9 +437,9 @@ class UITestCase(testtools.TestCase):
|
|||
return path.split('/')[-2]
|
||||
|
||||
def delete_service(self, service_name):
|
||||
id = self.get_element_id(service_name)
|
||||
service_id = self.get_element_id(service_name)
|
||||
self.driver.find_element_by_id('services__row_%s__action_delete'
|
||||
% id).click()
|
||||
% service_id).click()
|
||||
self.driver.find_element_by_link_text('Delete Service').click()
|
||||
|
||||
def get_env_subnet(self):
|
||||
|
@ -496,13 +493,13 @@ class UITestCase(testtools.TestCase):
|
|||
self.fill_field(by.By.ID, 'id_description', 'New Service')
|
||||
|
||||
self.driver.find_element_by_link_text('UI Files').click()
|
||||
self.driver.find_element_by_xpath(".//*[@value = 'ui##Demo.yaml']")
|
||||
self.select_and_click_element('ui##Demo.yaml')
|
||||
self.driver.find_element_by_link_text('Workflows').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@name = 'workflows@@workflows##Demo.xml@@selected']")
|
||||
".//*[@name = 'workflows@@workflows##Demo.xml@@selected']").click()
|
||||
self.driver.find_element_by_link_text('Heat Templates').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@name = 'heat@@heat##Demo.template@@selected']")
|
||||
".//*[@name = 'heat@@heat##Demo.template@@selected']").click()
|
||||
|
||||
submit_button = self.elements.get('button', 'InputSubmit')
|
||||
self.driver.find_element_by_xpath(submit_button).click()
|
||||
|
@ -522,7 +519,7 @@ class UITestCase(testtools.TestCase):
|
|||
% (service, action)).click()
|
||||
|
||||
def check_service_parameter(self, service, column, value):
|
||||
time.sleep(2)
|
||||
self.driver.refresh()
|
||||
result = self.driver.find_element_by_xpath(
|
||||
".//*[@id='service_catalog__row__%s']/td[%s]"
|
||||
% (service, column)).text
|
||||
|
@ -530,3 +527,15 @@ class UITestCase(testtools.TestCase):
|
|||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def select_and_click_element(self, element):
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@value = '%s']" % element).click()
|
||||
|
||||
def choose_and_upload_files(self, name):
|
||||
__location = os.path.realpath(os.path.join(os.getcwd(),
|
||||
os.path.dirname(__file__)))
|
||||
self.driver.find_element_by_xpath(".//*[@id='id_file']").click()
|
||||
self.driver.find_element_by_id('id_file').send_keys(
|
||||
os.path.join(__location, name))
|
||||
self.select_and_click_element('Upload')
|
||||
|
|
|
@ -6,4 +6,3 @@ More=/html/body/div/div[2]/div[3]/form/table/tbody/tr/td[4]/div/a[2]
|
|||
Next=/html/body/div[3]/div/form/div[2]/button
|
||||
Next2=/html/body/div[3]/div/form/div[2]/input[2]
|
||||
Create=/html/body/div[3]/div/form/div[2]/input[2]
|
||||
MarkImage=.//*[@id='mark_murano_image_form']/div[2]/input
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"AWSTemplateFormatVersion": "2010-09-09",
|
||||
|
||||
"Parameters": {
|
||||
"KeyName": {
|
||||
"Description": "Key Pair name for Load Balancer",
|
||||
"Type": "String",
|
||||
"Default": "murano-lb-key"
|
||||
}
|
||||
},
|
||||
|
||||
"Resources": {
|
||||
"$instanceName": {
|
||||
"Type": "AWS::EC2::Instance",
|
||||
"Properties": {
|
||||
"InstanceType": "$instanceType",
|
||||
"ImageId": "$imageName",
|
||||
"AvailabilityZone": "$availabilityZone",
|
||||
"UserData": "$userData"
|
||||
}
|
||||
},
|
||||
"MuranoDefaultSecurityGroup": {
|
||||
"Type": "AWS::EC2::SecurityGroup",
|
||||
"Properties": {
|
||||
"SecurityGroupIngress": [
|
||||
{
|
||||
"ToPort": "3389",
|
||||
"IpProtocol": "tcp",
|
||||
"FromPort": "3389",
|
||||
"CidrIp": "0.0.0.0/0"
|
||||
},
|
||||
{
|
||||
"ToPort": "22",
|
||||
"IpProtocol": "tcp",
|
||||
"FromPort": "22",
|
||||
"CidrIp": "0.0.0.0/0"
|
||||
},
|
||||
{
|
||||
"ToPort": "-1",
|
||||
"IpProtocol": "icmp",
|
||||
"FromPort": "-1",
|
||||
"CidrIp": "0.0.0.0/0"
|
||||
}
|
||||
],
|
||||
"GroupDescription": "Default security group for Murano Environments"
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
"Outputs": {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
Function DeployTestingFunction {
|
||||
$stream = [System.IO.StreamWriter] "C:/test_report.txt"
|
||||
$stream.WriteLine(“Test Report”)
|
||||
|
||||
$host_name = [System.Net.Dns]::GetHostByName((hostname)).HostName
|
||||
$stream.WriteLine(“Host: $host_name”)
|
||||
|
||||
$ip_address = [System.Net.Dns]::GetHostByName((hostname)).AddressList.IPAddressToString
|
||||
$stream.WriteLine(“IP Address: $ip_address”)
|
||||
|
||||
$win_agent = Get-Process WindowsAgent | Select-Object name,fileversion,productversion,company
|
||||
if ($win_agent) { $agent_status = ‘running’ } else { $agent_status = ‘error’ }
|
||||
$stream.WriteLine(“Murano Windows Agent Process Status: $agent_status”)
|
||||
if ($win_agent) { $agent_version = $win_agent.FileVersion
|
||||
$stream.WriteLine(“Murano Windows Agent Version: $agent_version”) }
|
||||
|
||||
$stream.WriteLine(“Firewall Opened Ports:”)
|
||||
$firewall_rules = Get-NetFirewallPortFilter | Select-Object Protocol, RemotePort, LocalPort
|
||||
foreach ($rule in $firewall_rules) { $stream.WriteLine($rule) }
|
||||
|
||||
$stream.close()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -2,8 +2,6 @@ import sys
|
|||
import os
|
||||
sys.path.append(os.getcwd())
|
||||
|
||||
import testtools
|
||||
|
||||
from base import UITestCase
|
||||
import selenium.webdriver.common.by as by
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
@ -11,7 +9,7 @@ from selenium.webdriver.support.ui import WebDriverWait
|
|||
|
||||
class UISanityTests(UITestCase):
|
||||
|
||||
def test_create_delete_environment(self):
|
||||
def test_001_create_delete_environment(self):
|
||||
self.log_in()
|
||||
self.create_environment('test_create_del_env')
|
||||
self.driver.find_element_by_link_text('test_create_del_env').click()
|
||||
|
@ -20,9 +18,9 @@ class UISanityTests(UITestCase):
|
|||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'test_create_del_env'))
|
||||
|
||||
def test_edit_environment(self):
|
||||
def test_002_edit_environment(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('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')
|
||||
|
@ -30,9 +28,9 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'edited_env'))
|
||||
|
||||
def test_rename_image(self):
|
||||
def test_003_rename_image(self):
|
||||
self.log_in()
|
||||
self.navigate_to_images()
|
||||
self.navigate_to('Images')
|
||||
self.driver.find_element_by_id(
|
||||
'marked_images__action_mark_image').click()
|
||||
|
||||
|
@ -40,12 +38,11 @@ class UISanityTests(UITestCase):
|
|||
self.fill_field(by.By.ID, 'id_title', 'New Image')
|
||||
self.select_from_list('type', ' Windows Server 2012')
|
||||
|
||||
mark = self.elements.get('button', 'MarkImage')
|
||||
self.driver.find_element_by_xpath(mark).click()
|
||||
self.select_and_click_element('Mark')
|
||||
|
||||
def test_delete_image(self):
|
||||
def test_004_delete_image(self):
|
||||
self.log_in()
|
||||
self.navigate_to_images()
|
||||
self.navigate_to('Images')
|
||||
self.driver.find_element_by_id(
|
||||
'marked_images__action_mark_image').click()
|
||||
|
||||
|
@ -53,8 +50,7 @@ class UISanityTests(UITestCase):
|
|||
self.fill_field(by.By.ID, 'id_title', 'Image for deletion')
|
||||
self.select_from_list('type', ' Windows Server 2012')
|
||||
|
||||
mark = self.elements.get('button', 'MarkImage')
|
||||
self.driver.find_element_by_xpath(mark).click()
|
||||
self.select_and_click_element('Mark')
|
||||
|
||||
element_id = self.get_element_id('TestImageForDeletion')
|
||||
self.driver.find_element_by_id(
|
||||
|
@ -63,151 +59,138 @@ class UISanityTests(UITestCase):
|
|||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'TestImageForDeletion'))
|
||||
|
||||
def test_create_and_delete_demo_service(self):
|
||||
def test_005_create_and_delete_demo_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_demo_service('DemoService')
|
||||
|
||||
self.create_demo_service('DemoService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'DemoService'))
|
||||
|
||||
self.delete_service('DemoService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'DemoService'))
|
||||
|
||||
def test_create_and_delete_linux_telnet(self):
|
||||
def test_006_create_and_delete_linux_telnet(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_linux_telnet('linuxtelnet')
|
||||
|
||||
self.create_linux_telnet('linuxtelnet')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxtelnet'))
|
||||
|
||||
self.delete_service('linuxtelnet')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxtelnet'))
|
||||
|
||||
def test_create_and_delete_linux_apache(self):
|
||||
def test_007_create_and_delete_linux_apache(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_linux_apache('linuxapache')
|
||||
|
||||
self.create_linux_apache('linuxapache')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxapache'))
|
||||
|
||||
self.delete_service('linuxapache')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxapache'))
|
||||
|
||||
def test_create_and_delete_ad_service(self):
|
||||
def test_008_create_and_delete_ad_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_ad_service('muranotest.domain')
|
||||
|
||||
self.create_ad_service('muranotest.domain')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'muranotest.domain'))
|
||||
|
||||
self.delete_service('muranotest.domain')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'muranotest.domain'))
|
||||
|
||||
def test_create_and_delete_iis_service(self):
|
||||
def test_009_create_and_delete_iis_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_iis_service('IISService')
|
||||
|
||||
self.create_iis_service('IISService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISService'))
|
||||
self.delete_service('IISService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISService'))
|
||||
|
||||
def test_create_and_delete_asp_service(self):
|
||||
def test_010_create_and_delete_asp_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_asp_service('ASPService')
|
||||
|
||||
self.create_asp_service('ASPService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPService'))
|
||||
|
||||
self.delete_service('ASPService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPService'))
|
||||
|
||||
@testtools.skip("SKIP because this https://review.openstack.org/#/c/67772/ "
|
||||
"not in master branch")
|
||||
def test_create_and_delete_iisfarm_service(self):
|
||||
def test_011_create_and_delete_iisfarm_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_iisfarm_service('IISFarmService')
|
||||
|
||||
self.create_iisfarm_service('IISFarmService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISFarmService'))
|
||||
|
||||
self.delete_service('IISFarmService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISFarmService'))
|
||||
|
||||
@testtools.skip("SKIP because this https://review.openstack.org/#/c/67772/ "
|
||||
"not in master branch")
|
||||
def test_create_and_delete_aspfarm_service(self):
|
||||
def test_012_create_and_delete_aspfarm_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_aspfarm_service('ASPFarmService')
|
||||
|
||||
self.create_aspfarm_service('ASPFarmService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPFarmService'))
|
||||
|
||||
self.delete_service('ASPFarmService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPFarmService'))
|
||||
|
||||
def test_create_and_delete_mssql_service(self):
|
||||
def test_013_create_and_delete_mssql_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_mssql_service('MSSQLService')
|
||||
|
||||
self.create_mssql_service('MSSQLService')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'MSSQLService'))
|
||||
|
||||
self.delete_service('MSSQLService')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'MSSQLService'))
|
||||
|
||||
def test_create_and_delete_sql_cluster_service(self):
|
||||
def test_014_create_and_delete_sql_cluster_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
self.create_ad_service('activeDirectory.mssql')
|
||||
|
||||
self.create_ad_service('activeDirectory.mssql')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'activeDirectory.mssql'))
|
||||
|
||||
|
@ -217,13 +200,12 @@ class UISanityTests(UITestCase):
|
|||
'SQLCluster'))
|
||||
|
||||
self.delete_service('SQLCluster')
|
||||
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'SQLCluster'))
|
||||
|
||||
def test_check_regex_expression_for_ad_name(self):
|
||||
def test_015_check_regex_expression_for_ad_name(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
|
||||
|
@ -281,9 +263,9 @@ class UISanityTests(UITestCase):
|
|||
'Period characters are allowed only when '
|
||||
'they are used to delimit the components of domain style names', 1))
|
||||
|
||||
def test_check_regex_expression_for_iis_name(self):
|
||||
def test_016_check_regex_expression_for_iis_name(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
|
||||
|
@ -312,9 +294,9 @@ class UISanityTests(UITestCase):
|
|||
self.assertFalse(self.check_that_error_message_is_correct(
|
||||
'Just letters, numbers, underscores and hyphens are allowed.', 1))
|
||||
|
||||
def test_check_regex_expression_for_git_repo_field(self):
|
||||
def test_017_check_regex_expression_for_git_repo_field(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
|
||||
|
@ -334,9 +316,9 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'Enter correct git repository url', 4))
|
||||
|
||||
def test_check_validation_for_hostname_template_field(self):
|
||||
def test_018_check_validation_for_hostname_template_field(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
|
||||
|
@ -361,13 +343,13 @@ class UISanityTests(UITestCase):
|
|||
next_button = self.elements.get('button', 'Next2')
|
||||
self.driver.find_element_by_xpath(next_button).click()
|
||||
|
||||
id = 'id_demoService-1-osImage'
|
||||
id_ = 'id_demoService-1-osImage'
|
||||
WebDriverWait(self.driver, 10).until(lambda s: s.find_element(
|
||||
by.By.ID, id).is_displayed())
|
||||
by.By.ID, id_).is_displayed())
|
||||
|
||||
def test_check_bool_field_validation(self):
|
||||
def test_019_check_bool_field_validation(self):
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_service('test')
|
||||
|
||||
|
@ -407,14 +389,14 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'This field is required.', 1))
|
||||
|
||||
def test_positive_scenario_1_for_the_MS_SQL_Cluster_Form(self):
|
||||
def test_020_positive_scenario_1_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Scenario 1: External AD and Mixed-Mode Auth checkboxes
|
||||
are not selected. User select created earlier domain.
|
||||
"""
|
||||
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('scenario_1')
|
||||
self.env_to_service('scenario_1')
|
||||
|
||||
|
@ -445,7 +427,7 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
||||
|
||||
def test_positive_scenario_2_for_the_MS_SQL_Cluster_Form(self):
|
||||
def test_021_positive_scenario_2_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Scenario 2: External AD field is selected (and user fill
|
||||
all required fields here) and Mixed-Mode Auth checkbox
|
||||
|
@ -453,7 +435,7 @@ class UISanityTests(UITestCase):
|
|||
"""
|
||||
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('scenario_2')
|
||||
self.env_to_service('scenario_2')
|
||||
|
||||
|
@ -487,14 +469,14 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
||||
|
||||
def test_positive_scenario_3_for_the_MS_SQL_Cluster_Form(self):
|
||||
def test_022_positive_scenario_3_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Scenario 3: External AD and Mixed-Mode Auth checkboxes are selected.
|
||||
User have to fill all required fields.
|
||||
"""
|
||||
|
||||
self.log_in()
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('scenario_3')
|
||||
self.env_to_service('scenario_3')
|
||||
|
||||
|
@ -530,16 +512,16 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
||||
|
||||
def test_check_opportunity_to_compose_a_new_service(self):
|
||||
def test_023_check_opportunity_to_compose_a_new_service(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('composedService')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="composedService"]'))
|
||||
|
||||
def test_modify_service_name(self):
|
||||
def test_024_modify_service_name(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('forModification')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="forModification"]'))
|
||||
|
@ -553,9 +535,9 @@ class UISanityTests(UITestCase):
|
|||
self.assertTrue(self.check_service_parameter(
|
||||
'forModificationService', '2', 'modifiedService'))
|
||||
|
||||
def test_modify_description(self):
|
||||
def test_025_modify_description(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('forModification')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="forModification"]'))
|
||||
|
@ -573,26 +555,14 @@ class UISanityTests(UITestCase):
|
|||
".//*[@id='main_content']/div[3]/dl/dd[4]",
|
||||
'New Description')
|
||||
|
||||
def test_check_opportunity_to_toggle_service(self):
|
||||
def test_026_check_opportunity_to_select_composed_service(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'toggle_enabled')
|
||||
self.assertTrue(
|
||||
self.check_service_parameter('demoService', '3', 'False'))
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'toggle_enabled')
|
||||
self.assertTrue(
|
||||
self.check_service_parameter('demoService', '3', 'True'))
|
||||
|
||||
def test_check_opportunity_to_select_composed_service(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('TEST')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="TEST"]'))
|
||||
|
||||
self.navigate_to_environments()
|
||||
self.navigate_to('Environments')
|
||||
self.create_environment('env')
|
||||
self.env_to_service('env')
|
||||
self.driver.find_element_by_link_text('Create Service').click()
|
||||
|
@ -602,4 +572,127 @@ class UISanityTests(UITestCase):
|
|||
self.driver.find_element_by_xpath(next_button).click()
|
||||
|
||||
next_ = "/html/body/div[3]/div/form/div[2]/input[2]"
|
||||
self.assertTrue(self.check_element_on_page(by.By.XPATH, next_))
|
||||
self.assertTrue(self.check_element_on_page(by.By.XPATH, next_))
|
||||
|
||||
def test_027_modify_service_add_file(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('TEST')
|
||||
|
||||
self.select_action_for_service('TESTService', 'modify_service')
|
||||
|
||||
self.driver.find_element_by_link_text('Scripts').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@name = 'scripts@@scripts##"
|
||||
"Get-DnsListeningIpAddress.ps1@@selected']").click()
|
||||
|
||||
submit_button = self.elements.get('button', 'InputSubmit')
|
||||
self.driver.find_element_by_xpath(submit_button).click()
|
||||
|
||||
self.select_action_for_service('TESTService', 'more')
|
||||
self.select_action_for_service('TESTService', 'manage_service')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, ".//*[@id='scripts__row__scripts##"
|
||||
"Get-DnsListeningIpAddress.ps1']"))
|
||||
|
||||
def test_028_download_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'download_service')
|
||||
|
||||
def test_029_upload_service_to_repository(self):
|
||||
self.log_in()
|
||||
self.driver.find_element_by_link_text('Service Definitions').click()
|
||||
|
||||
self.click_on_service_catalog_action('upload_service')
|
||||
self.choose_and_upload_files('myService.tar.gz')
|
||||
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="My Service"]'))
|
||||
|
||||
def test_030_manage_service_upload_file(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('TEST')
|
||||
|
||||
self.select_action_for_service('TESTService', 'more')
|
||||
self.select_action_for_service('TESTService', 'manage_service')
|
||||
|
||||
self.driver.find_element_by_id('scripts__action_upload_file2').click()
|
||||
self.choose_and_upload_files('myScript.ps1')
|
||||
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, ".//*[@id='scripts__row__scripts##myScript.ps1']"))
|
||||
|
||||
def test_031_manage_files_upload_delete_file(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
|
||||
self.click_on_service_catalog_action('manage_files')
|
||||
self.driver.find_element_by_id(
|
||||
'manage_files__action_upload_file').click()
|
||||
|
||||
self.choose_and_upload_files('myHeatTemplate.template')
|
||||
|
||||
self.select_and_click_element('heat')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH,
|
||||
".//*[@id='manage_files__row__heat##myHeatTemplate.template']"))
|
||||
|
||||
self.select_and_click_element('heat##myHeatTemplate.template')
|
||||
self.driver.find_element_by_id(
|
||||
'manage_files__action_delete_file').click()
|
||||
|
||||
self.confirm_deletion()
|
||||
|
||||
self.assertFalse(self.check_element_on_page(
|
||||
by.By.XPATH, ".//*[@id='manage_files__row__heat##"
|
||||
"myHeatTemplate.template']"))
|
||||
|
||||
def test_032_check_opportunity_to_toggle_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'toggle_enabled')
|
||||
self.driver.refresh()
|
||||
self.assertTrue(
|
||||
self.check_service_parameter('demoService', '3', 'False'))
|
||||
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'toggle_enabled')
|
||||
self.driver.refresh()
|
||||
self.assertTrue(
|
||||
self.check_service_parameter('demoService', '3', 'True'))
|
||||
|
||||
def test_033_delete_component_from_existing_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
|
||||
self.select_action_for_service('demoService', 'more')
|
||||
self.select_action_for_service('demoService', 'manage_service')
|
||||
|
||||
self.select_and_click_element('agent##Demo.template')
|
||||
self.driver.refresh()
|
||||
self.driver.find_element_by_id(
|
||||
'agent__action_delete_file_from_service').click()
|
||||
self.confirm_deletion()
|
||||
|
||||
self.assertFalse(self.check_element_on_page(
|
||||
by.By.XPATH, ".//*[@id='agent__row__agent##Demo.template']"))
|
||||
|
||||
def test_034_check_opportunity_to_delete_composed_service(self):
|
||||
self.log_in()
|
||||
self.navigate_to('Service Definitions')
|
||||
self.compose_trivial_service('ForDeletion')
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="ForDeletion"]'))
|
||||
|
||||
self.select_and_click_element('ForDeletionService')
|
||||
self.driver.refresh()
|
||||
self.click_on_service_catalog_action('delete_service')
|
||||
self.confirm_deletion()
|
||||
self.assertFalse(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="ForDeletion"]'))
|
Loading…
Reference in New Issue