def test_create_delete_application(self): # Login NC print '%s is going to be logged in.' % Settings.username login_nodeconductor(self.driver, Settings.username, Settings.password) username_idt_field = self.driver.find_element_by_class_name('user-name') assert username_idt_field.text == Settings.user_full_name, 'Error. Another username.' print '%s was logged in successfully.' % Settings.username # Choose organization print 'Organization is going to be chosen.' choose_organization(self.driver, Settings.organization) print 'Organization was chosen successfully.' # Create project print 'Project is going to be created.' create_project(self.driver, Settings.project_name) time.sleep(BaseSettings.click_time_wait) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.project_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create project "%s"' % Settings.project_name self.project_exists = True print 'Project exists: ', self.project_exists print 'Project was created successfully.' # Create application group print 'Application group is going to be created.' create_application_group(self.driver, Settings.project_name, Settings.category_name, Settings.resource_type_name, Settings.path_name, Settings.application_group_name) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.application_group_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create application group "%s"' % Settings.application_group_name self.application_group_exists = True print 'Application group exists: ', self.application_group_exists print 'Find online state of created application group' try: WebDriverWait(self.driver, Settings.time_wait_for_application_state).until( EC.presence_of_element_located((By.XPATH, '//div[contains(text(), "Online")]'))) except TimeoutException as e: print 'Error: Application group is not online' raise e else: print 'Application group is in online status' print 'Application group was created successfully' # Create application project print 'Application project is going to be created.' create_application_project(self.driver, Settings.project_name, Settings.category_name, Settings.resource_type_name1, Settings.application_project_name, Settings.visibility_level_name, Settings.application_group_name) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.application_project_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create application group "%s"' % Settings.application_project_name self.application_project_exists = True print 'Application project exists: ', self.application_project_exists print 'Find online state of created application group' try: WebDriverWait(self.driver, Settings.time_wait_for_application_state).until( EC.presence_of_element_located((By.XPATH, '//div[contains(text(), "Online")]'))) except TimeoutException as e: print 'Error: Application project is not online' raise e else: print 'Application project is in online status' print 'Application project was created successfully'
def test(self): # Login NC print '%s is going to be logged in.' % Settings.username login_nodeconductor(self.driver, Settings.username, Settings.password) username_idt_field = self.driver.find_element_by_class_name('user-name') assert username_idt_field.text == Settings.user_full_name, 'Error. Another username.' print '%s was logged in successfully.' % Settings.username # Choose organization print 'Organization is going to be chosen.' choose_organization(self.driver, Settings.organization) print 'Organization was chosen successfully.' # Create project print 'Project is going to be created.' # goto main page: self.driver.get(Settings.site_url) create_project(self.driver, Settings.project_name) time.sleep(BaseSettings.click_time_wait) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.project_name self.project_exists = bool(self.driver.find_elements_by_xpath(xpath)) assert self.project_exists, 'Cannot create project "%s"' % Settings.project_name print 'Prject was created successfully' # Create resource print 'Resource is going to be created.' # goto main page: self.driver.get(Settings.site_url) create_resource_azure(self.driver, Settings.project_name, Settings.resource_name, Settings.category_name, Settings.provider_name, Settings.image_name, Settings.username, Settings.os_password, Settings.size_name) element = WebDriverWait(self.driver, 180).until( EC.presence_of_element_located((By.CLASS_NAME, "status-circle"))) # time.sleep(Settings.time_after_resource_creation) # self.driver.refresh() # time.sleep(10) # back_to_list_field = self.driver.find_element_by_class_name('back-to-list') # back_to_list_field.click() # time.sleep(5) # vms = self.driver.find_element_by_css_selector('[visible="vms"]') # vms.click() # time.sleep(5) # search_field = self.driver.find_element_by_css_selector('[ng-model="generalSearch"]') # search_field.clear() # time.sleep(5) # search_field.send_keys(Settings.resource_name) # time.sleep(5) # assert element_exists(self.driver, css_selector='[ng-repeat="entity in entityList.list"]'), ( # 'Error: Cannot find resource with name %s ' % Settings.resource_name) self.resource_exists = True print 'Resource was created successfully.'
def projects_create(): token_response = helpers.validate_jwt(request) if not token_response["success"]: return jsonify(token_response), 401 project_query = helpers.create_project(request, token_response["id"]) if project_query["success"]: return jsonify({ "success": True, "data": { "id": project_query["data"]["ref"].id() } # "project_id": }), 201 # Project was created successfully else: return jsonify({"success": False}), 500 # Project was not created
def test_create_delete_project_provider_import_unlink_resource(self): # Login NC print '%s is going to be logged in.' % Settings.username login_nodeconductor(self.driver, Settings.username, Settings.password) username_idt_field = self.driver.find_element_by_class_name('user-name') assert username_idt_field.text == Settings.user_full_name, 'Error. Another username.' print '%s was logged in successfully.' % Settings.username # Choose organization print 'Organization is going to be chosen.' choose_organization(self.driver, Settings.organization) print 'Organization was chosen successfully.' # Create project print 'Project is going to be created.' create_project(self.driver, Settings.project_name) time.sleep(BaseSettings.click_time_wait) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.project_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create project "%s"' % Settings.project_name self.project_exists = True print 'Project exists: ', self.project_exists print 'Project was created successfully.' # Create provider print 'Provider is going to be created.' time.sleep(BaseSettings.click_time_wait) create_provider_digitalocean(self.driver, Settings.provider_name, Settings.provider_type_name, Settings.digitalocean_access_token) _search(self.driver, Settings.provider_name) print 'Find provider in list' xpath = '//span[contains(text(), "%s")]' % Settings.provider_name assert element_exists(self.driver, xpath=xpath), 'Error: Provider with name "%s" is not found' % Settings.provider_name self.provider_exists = True print 'Provider exists: ', self.provider_exists print 'Find In Sync state of created provider' try: WebDriverWait(self.driver, Settings.time_wait_for_provider_state).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".status-circle.online"))) except TimeoutException as e: print 'Error: Provider is not In Sync' raise e else: print 'Provider is in In Sync state' print 'Provider was created successfully.' # Import resource print 'Resource is going to be imported.' import_resource(self.driver, Settings.project_name, Settings.provider_name, Settings.category_name, Settings.resource_name) _search(self.driver, Settings.resource_name) print 'Go to resource page' resource = self.driver.find_element_by_link_text(Settings.resource_name) resource.click() time.sleep(BaseSettings.click_time_wait) print 'Check imported resource existence' xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.resource_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot import resource "%s"' % Settings.resource_name self.resource_exists = True print 'Resource exists: ', self.resource_exists print 'Check imported resource state' xpath = '//div[contains(text(), "Online")]' assert bool(self.driver.find_elements_by_xpath(xpath)), 'Error: Imported resource "%s" is not online.' % Settings.resource_name print 'Imported resource is in online state' print 'Resource was imported successfully.' print '----- Cost is going to be checked----- ' go_to_main_page(self.driver) costs = self.driver.find_element_by_link_text('Costs') costs.click() time.sleep(BaseSettings.click_time_wait) print 'Select resources tab' resources_list = self.driver.find_element_by_css_selector('[ng-class="{\'active\': row.selected && row.activeTab==\'resources\'}"]') resources_list.click() time.sleep(BaseSettings.click_time_wait) print 'Find row with the resource in a resource list' rows_list = self.driver.find_elements_by_css_selector('[ng-repeat="resource in row.resources"]') resource_cost_exists = False for row in rows_list: if Settings.resource_name in row.text: assert Settings.resource_cost in row.text, 'Error: Cannot find resource cost "%s" to check cost' % Settings.resource_cost resource_cost_exists = True print 'Resource cost "%s" was found on page' % Settings.resource_cost assert resource_cost_exists, 'Error: Cannot find resource with name "%s" ' % Settings.resource_name time.sleep(BaseSettings.click_time_wait) print '----- Cost was checked successfully----- ' # Unlink resource print 'Resource is going to be unlinked.' unlink_resource(self.driver, Settings.project_name, Settings.resource_name) _search(self.driver, Settings.resource_name) print 'Check unlinked resource existence' assert not element_exists(self.driver, xpath='//a[contains(text(), "%s")]' % Settings.resource_name), ( 'Error: Resource with name "%s" was not unlinked, it still exists' % Settings.resource_name) self.resource_exists = False print 'Resource exists: ', self.resource_exists print 'Resource was unlinked successfully.'
def test_create_delete_project_key_resource(self): # Login NC print '%s is going to be logged in.' % Settings.username login_nodeconductor(self.driver, Settings.username, Settings.password) username_idt_field = self.driver.find_element_by_class_name('user-name') assert username_idt_field.text == Settings.user_full_name, 'Error. Another username.' print '%s was logged in successfully.' % Settings.username # Choose organization print 'Organization is going to be chosen.' choose_organization(self.driver, Settings.organization) print 'Organization was chosen successfully.' # Create project print 'Project is going to be created.' create_project(self.driver, Settings.project_name) time.sleep(BaseSettings.click_time_wait) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.project_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create project "%s"' % Settings.project_name self.project_exists = True print 'Project exists: ', self.project_exists print 'Project was created successfully.' # Create ssh key print 'SSH key is going to be created.' time.sleep(BaseSettings.click_time_wait) create_ssh_key(self.driver, Settings.user_full_name, Settings.key_name) _search(self.driver, Settings.key_name) print 'Find key in list' xpath = '//span[contains(text(), "%s")]' % Settings.key_name assert element_exists(self.driver, xpath=xpath), 'Error: Key with name "%s" is not found' % Settings.key_name self.ssh_key_exists = True print 'SSH key exists: ', self.ssh_key_exists print 'SSH key was created successfully' # Blocker SAAS-1141 # Create resource print 'Resource is going to be created.' create_resource_openstack(self.driver, Settings.project_name, Settings.resource_name, Settings.category_name, Settings.provider_name_in_resource, Settings.image_name, Settings.flavor_name, Settings.public_key_name) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.resource_name assert bool(self.driver.find_elements_by_xpath(xpath)), 'Cannot create resource "%s"' % Settings.resource_name self.resource_exists = True print 'Resource exists: ', self.resource_exists print 'Find online state of created resource' try: WebDriverWait(self.driver, Settings.time_wait_for_resource_creation).until( EC.presence_of_element_located((By.XPATH, '//div[contains(text(), "Online")]'))) except TimeoutException as e: print 'Error: Resource is not online' raise e else: print 'Resource is in online state' print 'Resource was created successfully.' # Delete resource print 'Resource is going to be deleted.' delete_resource(self.driver, Settings.resource_name, Settings.project_name, Settings.time_wait_after_resource_stopping) self.resource_exists = False print 'Resource exists: ', self.resource_exists
def test_create_delete_project_provider_resource(self): # Login NC print '%s is going to be logged in.' % Settings.username login_nodeconductor(self.driver, Settings.username, Settings.password) username_idt_field = self.driver.find_element_by_class_name( 'user-name') assert username_idt_field.text == Settings.user_full_name, 'Error. Another username.' print '%s was logged in successfully.' % Settings.username # Choose organization print 'Organization is going to be chosen.' choose_organization(self.driver, Settings.organization) print 'Organization was chosen successfully.' # Create project print 'Project is going to be created.' create_project(self.driver, Settings.project_name) time.sleep(BaseSettings.click_time_wait) xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.project_name assert bool(self.driver.find_elements_by_xpath( xpath)), 'Cannot create project "%s"' % Settings.project_name self.project_exists = True print 'Project was created successfully.' # Create provider print 'Provider is going to be created.' create_provider_digitalocean(self.driver, Settings.provider_name, Settings.provider_type_name, Settings.digitalocean_access_token) print 'Search created provider' search_field = self.driver.find_element_by_css_selector( '[ng-model="generalSearch"]') search_field.clear() search_field.send_keys(Settings.provider_name) time.sleep(BaseSettings.search_time_wait) print 'Find provider in list' xpath = '//span[contains(text(), "%s")]' % Settings.provider_name assert element_exists( self.driver, xpath=xpath ), 'Error: Provider with name "%s" is not found' % Settings.provider_name self.provider_exists = True print 'Find online state of created provider' try: WebDriverWait(self.driver, 30).until( EC.presence_of_element_located( (By.CSS_SELECTOR, ".status-circle.online"))) except TimeoutException as e: print 'Error: Provider is not online' raise e else: print 'Provider is in online status' print 'Provider was created successfully.' # Import resource print 'Resource is going to be imported.' import_resource(self.driver, Settings.project_name, Settings.provider_name, Settings.category_name, Settings.resource_name) print 'Search imported resource' search_field = self.driver.find_element_by_css_selector( '[ng-model="generalSearch"]') search_field.clear() search_field.send_keys(Settings.resource_name) time.sleep(BaseSettings.search_time_wait) print 'Go to resource page' resource = self.driver.find_element_by_link_text( Settings.resource_name) resource.click() time.sleep(BaseSettings.click_time_wait) print 'Check imported resource existence' xpath = '//span[@class="name" and contains(text(), "%s")]' % Settings.resource_name assert bool(self.driver.find_elements_by_xpath( xpath)), 'Cannot import resource "%s"' % Settings.resource_name self.resource_exists = True print 'Resource exists: ', self.resource_exists print 'Check imported resource state' xpath = '//dd[contains(text(), "Online")]' assert bool( self.driver.find_elements_by_xpath(xpath) ), 'Error: Imported resource "%s" is not online.' % Settings.resource_name print 'Imported resource is in online state' print 'Resource was imported successfully.' print '----- Cost is going to be checked----- ' go_to_main_page(self.driver) costs = self.driver.find_element_by_link_text('Costs') costs.click() time.sleep(BaseSettings.click_time_wait) print 'Select resources tab' resources_list = self.driver.find_element_by_css_selector( '[ng-class="{\'active\': row.selected && row.activeTab==\'resources\'}"]' ) resources_list.click() time.sleep(BaseSettings.click_time_wait) print 'Find row with the resource in a resource table' rows_list = self.driver.find_elements_by_css_selector( '[ng-repeat="resource in row.resources"]') resource_cost_exists = False for row in rows_list: if Settings.resource_name in row.text: assert Settings.resource_cost in row.text, 'Error: Cannot find resource cost "%s" to check cost' % Settings.resource_cost resource_cost_exists = True print 'Resource cost "%s" was found on page' % Settings.resource_cost assert resource_cost_exists, 'Error: Cannot find resource with name "%s" ' % Settings.resource_name time.sleep(BaseSettings.click_time_wait) print '----- Cost was checked successfully----- ' # Unlink resource print 'Resource is going to be unlinked.' unlink_resource(self.driver, Settings.project_name, Settings.resource_name) print 'Search imported resource' search_field = self.driver.find_element_by_css_selector( '[ng-model="generalSearch"]') search_field.clear() search_field.send_keys(Settings.resource_name) time.sleep(BaseSettings.search_time_wait) print 'Check unlinked resource existence' assert not element_exists( self.driver, xpath='//a[contains(text(), "%s")]' % Settings.resource_name ), ('Error: Resource with name "%s" was not unlinked, it still exists' % Settings.resource_name) self.resource_exists = False print 'Resource exists: ', self.resource_exists print 'Resource was unlinked successfully.'