Bump hacking

hacking 3.1.x is too old.

Change-Id: I7c7686c36cedb9d88caea2fd74880d138fa00c8e
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
Takashi Kajinami
2025-05-27 15:14:21 +09:00
parent 4e1eb11d81
commit 69dad6e6d6
38 changed files with 224 additions and 215 deletions

View File

@@ -167,7 +167,7 @@ class HorizonMiddleware(object):
"""
if http_utils.is_ajax(request) and hasattr(request, 'horizon'):
queued_msgs = request.horizon['async_messages']
if type(response) == http.HttpResponseRedirect:
if isinstance(response, http.HttpResponseRedirect):
# Drop our messages back into the session as per usual so they
# don't disappear during the redirect. Not that we explicitly
# use django's messages methods here.

View File

@@ -20,8 +20,9 @@ import os
import socket
from horizon.defaults import * # noqa: F401,F403,H303
from openstack_auth.defaults import * # noqa: F401,F403,H303
from openstack_dashboard.utils import settings as settings_utils
from openstack_auth.defaults import * # noqa: F401,F403,H303,I100
from openstack_dashboard.utils import settings as settings_utils # noqa: I100
socket.setdefaulttimeout(1)

View File

@@ -167,4 +167,4 @@ def extract_angular(fileobj, keywords, comment_tags, options):
parser.feed(encodeutils.safe_decode(line))
for string in parser.strings:
yield(string)
yield string

View File

@@ -91,7 +91,7 @@ class Service(base.APIDictWrapper):
self.region = region
def __str__(self):
if(self.type == "identity"):
if self.type == "identity":
return _("%(type)s (%(backend)s backend)") \
% {"type": self.type, "backend": keystone_backend_name()}
return self.type

View File

@@ -46,7 +46,7 @@ class Networks(generic.View):
result = api.neutron.network_list_for_tenant(
request, tenant_id,
include_pre_auto_allocate=True)
return{'items': [n.to_dict() for n in result]}
return {'items': [n.to_dict() for n in result]}
@rest_utils.ajax(data_required=True)
def post(self, request):
@@ -92,7 +92,7 @@ class Subnets(generic.View):
"""
result = api.neutron.subnet_list(request, **request.GET.dict())
return{'items': [n.to_dict() for n in result]}
return {'items': [n.to_dict() for n in result]}
@rest_utils.ajax(data_required=True)
def post(self, request):

View File

@@ -169,7 +169,7 @@ def swift_get_containers(request, marker=None, prefix=None):
prefix=prefix,
full_listing=True)
container_objs = [Container(c) for c in containers]
if(len(container_objs) > limit):
if len(container_objs) > limit:
return (container_objs[0:-1], True)
return (container_objs, False)
@@ -270,7 +270,7 @@ def swift_get_objects(request, container_name, prefix=None, marker=None,
**kwargs)
object_objs = _objectify(objects, container_name)
if(len(object_objs) > limit):
if len(object_objs) > limit:
return (object_objs[0:-1], True)
return (object_objs, False)

View File

@@ -54,7 +54,7 @@ def openstack(request):
regions = {'support': len(available_regions) > 1,
'current': {'endpoint': request.session.get('region_endpoint'),
'name': request.session.get('region_name')},
'available': [{'endpoint': region[0], 'name':region[1]} for
'available': [{'endpoint': region[0], 'name': region[1]} for
region in available_regions]}
# K2K Federation Service Providers context/support

View File

@@ -1005,7 +1005,7 @@ class NetworkTests(test.BaseAdminViewTests):
url = reverse('horizon:admin:networks:create')
res = self.client.get(url)
physical_network = res.context['form'].fields['physical_network']
self.assertEqual(type(physical_network), forms.CharField)
self.assertIsInstance(physical_network, forms.CharField)
self.mock_tenant_list.assert_called_once_with(test.IsHttpRequest())
self._check_is_extension_supported(
@@ -1029,7 +1029,7 @@ class NetworkTests(test.BaseAdminViewTests):
url = reverse('horizon:admin:networks:create')
res = self.client.get(url)
physical_network = res.context['form'].fields['physical_network']
self.assertEqual(type(physical_network), forms.ThemableChoiceField)
self.assertIsInstance(physical_network, forms.ThemableChoiceField)
self.assertListEqual(list(physical_network.choices),
[('default', 'default'), ('test', 'test')])

View File

@@ -1156,7 +1156,7 @@ class NetworkViewTests(test.TestCase, NetworkStubMixin):
networks = res.context['networks_table'].data
button = find_button_fn(res)
self.assertFalse('disabled' in button.classes,
self.assertNotIn('disabled', button.classes,
"The create button should not be disabled")
self._check_net_list()

View File

@@ -1221,7 +1221,7 @@ class RouterViewTests(RouterMixin, test.TestCase):
self.assertCountEqual(routers, self.routers.list())
create_action = self.getAndAssertTableAction(res, 'routers', 'create')
self.assertFalse('disabled' in create_action.classes,
self.assertNotIn('disabled', create_action.classes,
'Create button should not be disabled')
self.assertEqual('Create Router',
create_action.verbose_name)

View File

@@ -104,7 +104,7 @@ class MetadatadefinitionsPage(basepage.BaseNavigationPage):
return bool(self._get_row_with_namespace_name(name))
def is_public_set_correct(self, name, exp_value, row=None):
if type(exp_value) != bool:
if not isinstance(exp_value, bool):
raise ValueError('Expected value "exp_value" is not boolean')
if not row:
row = self._get_row_with_namespace_name(name)
@@ -112,7 +112,7 @@ class MetadatadefinitionsPage(basepage.BaseNavigationPage):
return self._is_text_visible(cell, self.boolean_mapping[exp_value])
def is_protected_set_correct(self, name, exp_value, row=None):
if type(exp_value) != bool:
if not isinstance(exp_value, bool):
raise ValueError('Expected value "exp_value" is not boolean')
if not row:
row = self._get_row_with_namespace_name(name)

View File

@@ -322,6 +322,7 @@ class TestImagesAdvancedAngular(helpers.TestCase):
return InstancesPage(self.driver, self.CONFIG)
"""Login as demo user"""
def test_create_volume_from_image(self):
"""This test case checks create volume from image functionality:

View File

@@ -21,6 +21,7 @@ class TestLogin(helpers.BaseTestCase):
* logs in as a regular user
* checks that the user home page loads without error
"""
def test_login(self):
login_pg = loginpage.LoginPage(self.driver, self.CONFIG)
login_pg.go_to_login_page()

View File

@@ -85,7 +85,7 @@ def change_page_size(driver, config, page_size):
driver.find_element_by_css_selector(
f"#id_pagesize[value='{page_size}']")
break
except(exceptions.NoSuchElementException):
except exceptions.NoSuchElementException:
time.sleep(3)

View File

@@ -56,7 +56,7 @@ def test_download_rc_file_admin(login, driver, config, openstack_admin,
project_id = re.search(
r'export OS_PROJECT_ID=(.+)', content).group(1)
assert(config.identity.admin_username == username and
assert (config.identity.admin_username == username and
config.identity.admin_home_project == project_name and
openstack_admin.identity.find_project(
config.identity.admin_home_project).id == project_id)
@@ -88,7 +88,7 @@ def test_download_rc_file_demo(login, driver, config, openstack_admin,
project_id = re.search(
r'export OS_PROJECT_ID=(.+)', content).group(1)
assert(config.identity.username == username and
assert (config.identity.username == username and
config.identity.home_project == project_name and
openstack_admin.identity.find_project(
config.identity.home_project).id == project_id)

View File

@@ -65,10 +65,10 @@ def test_update_compute_defaults(login, driver, openstack_admin, config,
defaults_form.find_element_by_id("id_cores").send_keys(number_of_cores)
defaults_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: Default quotas updated.' in messages
assert 'Success: Default quotas updated.' in messages
new_quotas = openstack_admin.compute.get(
"/os-quota-class-sets/default").json()
assert(
assert (
new_quotas["quota_class_set"]["instances"] == number_of_instances and
new_quotas["quota_class_set"]["cores"] == number_of_cores)
@@ -94,8 +94,8 @@ def test_update_volume_defaults(login, driver, openstack_admin, config,
number_of_snapshots)
defaults_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: Default quotas updated.' in messages
assert 'Success: Default quotas updated.' in messages
new_quotas = openstack_admin.block_storage.get(
"/os-quota-class-sets/default").json()
assert(new_quotas["quota_class_set"]["volumes"] == number_of_volumes and
assert (new_quotas["quota_class_set"]["volumes"] == number_of_volumes and
new_quotas["quota_class_set"]["snapshots"] == number_of_snapshots)

View File

@@ -20,7 +20,7 @@ from openstack_dashboard.test.selenium import widgets
@pytest.fixture
def floatingip_description():
return('horizon_floatingip_description_%s'
return ('horizon_floatingip_description_%s'
% uuidutils.generate_uuid(dashed=False))
@@ -100,7 +100,7 @@ def test_release_floatingip(login, driver, openstack_demo, config,
widgets.select_from_dropdown(actions_column, "Release Floating IP")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Released Floating IP: "
assert (f"Success: Released Floating IP: "
f"{new_floating_ip.floating_ip_address}" in messages)
assert openstack_demo.network.find_ip(
new_floating_ip.floating_ip_address) is None
@@ -129,11 +129,12 @@ def test_associate_floatingip(login, driver, openstack_demo, new_floating_ip,
f"{instance_name}: {new_instance_demo.private_v4}")
associateip_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: IP address {new_floating_ip.floating_ip_address}"
assert (f"Success: IP address {new_floating_ip.floating_ip_address}"
f" associated." in messages)
assert(new_instance_demo.id == openstack_demo.network.find_ip(
assert (new_instance_demo.id == openstack_demo.network.find_ip(
new_floating_ip.floating_ip_address).port_details['device_id'])
@pytest.mark.parametrize('new_instance_demo', [(1, True)],
indirect=True)
def test_disassociate_floatingip(login, driver, openstack_demo, config,
@@ -156,7 +157,7 @@ def test_disassociate_floatingip(login, driver, openstack_demo, config,
rows[0].find_element_by_css_selector(".data-table-action").click()
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Successfully disassociated Floating IP: "
assert (f"Success: Successfully disassociated Floating IP: "
f"{instance_auto_ip}" in messages)
instance_sdk = openstack_demo.compute.find_server(new_instance_demo.id)
assert (len(instance_sdk.addresses['default_test_network']) == 1)

View File

@@ -52,7 +52,7 @@ def test_create_group(login, driver, group_name, openstack_admin, config,
group_form.find_element_by_id("id_name").send_keys(group_name)
group_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Group "{group_name}" was successfully created.'
assert (f'Success: Group "{group_name}" was successfully created.'
in messages)
assert openstack_admin.identity.find_group(group_name) is not None
@@ -99,9 +99,9 @@ def test_edit_group_name_and_description(login, driver, group_name,
f"EDITED_Description for: {group_name}")
group_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Group has been updated successfully." in messages
assert(openstack_admin.identity.find_group(
assert "Success: Group has been updated successfully." in messages
assert (openstack_admin.identity.find_group(
f"EDITED_{group_name}") is not None)
assert(openstack_admin.identity.find_group(
assert (openstack_admin.identity.find_group(
f"EDITED_{group_name}").description ==
f"EDITED_Description for: {group_name}")

View File

@@ -52,9 +52,9 @@ def test_create_grouptype(login, driver, grouptype_name, openstack_admin,
grouptype_form.find_element_by_id("id_name").send_keys(grouptype_name)
grouptype_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Successfully created group type: {grouptype_name}'
assert (f'Success: Successfully created group type: {grouptype_name}'
in messages)
assert(openstack_admin.block_storage.find_group_type(grouptype_name)
assert (openstack_admin.block_storage.find_group_type(grouptype_name)
is not None)

View File

@@ -66,7 +66,7 @@ def test_create_host_aggregate(login, driver, openstack_admin, config,
host_aggregate_form.find_element_by_css_selector(
".btn-primary[value='Create Host Aggregate']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Created new host aggregate "{host_aggregate_name}".'
assert (f'Success: Created new host aggregate "{host_aggregate_name}".'
in messages)
is_host_aggregate_created_sdk = False
host_aggregates_sdk = openstack_admin.compute.get(
@@ -94,7 +94,7 @@ def test_delete_host_aggregate(login, driver, openstack_admin, config,
widgets.select_from_dropdown(actions_column, "Delete Host Aggregate")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Deleted Host Aggregate: "
assert (f"Success: Deleted Host Aggregate: "
f"{new_host_aggregate['aggregate']['name']}" in messages)
is_host_aggregate_deleted_sdk = True
host_aggregates_sdk = openstack_admin.compute.get(

View File

@@ -164,7 +164,7 @@ def test_image_create_from_local_file_demo(login, driver, image_names,
"[label='QCOW2 - QEMU Emulator']").click()
wizard.find_element_by_css_selector("button.btn-primary.finish").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Image {image_name} was successfully"
assert (f"Success: Image {image_name} was successfully"
f" created." in messages)
assert openstack_demo.compute.find_image(image_name) is not None
@@ -263,7 +263,7 @@ def test_image_create_from_local_file_admin(login, driver, image_names,
"[label='QCOW2 - QEMU Emulator']").click()
wizard.find_element_by_css_selector("button.btn-primary.finish").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Image {image_name} was successfully"
assert (f"Success: Image {image_name} was successfully"
f" created." in messages)
assert openstack_admin.compute.find_image(image_name) is not None
@@ -387,7 +387,7 @@ def test_remove_protected_image_admin(login, driver, image_names,
if option.text == "Delete Image":
pytest.fail("Delete option should not exist")
actions_column.find_element_by_xpath(
f".//*[normalize-space()='Edit Image']").click()
".//*[normalize-space()='Edit Image']").click()
wait_for_angular_readiness(driver)
image_form = driver.find_element_by_css_selector(".ng-wizard")
image_form.find_element_by_xpath(".//label[text()='No']").click()
@@ -475,7 +475,7 @@ def test_update_image_metadata_admin(login, driver,
image_form.find_element_by_xpath(
"//button[@ng-click='modal.save()']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Metadata was successfully updated." in messages
assert "Success: Metadata was successfully updated." in messages
image_id = new_image_admin.id
for name, value in new_metadata.items():
assert (openstack_admin.compute.get(f"/images/{image_id}").json(
@@ -522,7 +522,7 @@ def test_launch_instance_from_image_admin(complete_default_test_network, login,
wizard.find_element_by_css_selector(
"button.btn-primary.finish").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Info: Scheduled creation of 1 instance." in messages
assert "Info: Scheduled creation of 1 instance." in messages
assert openstack_admin.compute.find_server(instance_name) is not None
@@ -547,8 +547,8 @@ def test_create_volume_from_image_admin(login, driver, volume_name,
name_field.clear()
name_field.send_keys(volume_name)
create_vol_btn = WebDriverWait(driver, config.selenium.page_timeout).until(
EC.element_to_be_clickable((By.XPATH, f"//button[@class='btn "
f"btn-primary finish']")))
EC.element_to_be_clickable(
(By.XPATH, "//button[@class='btn btn-primary finish']")))
create_vol_btn.click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Info: Creating volume {volume_name}" in messages

View File

@@ -105,7 +105,7 @@ def apply_instance_name_filter(driver, config, name_pattern):
driver.find_element_by_css_selector(
f".table_search input[value='{name_pattern}']")
break
except(exceptions.NoSuchElementException):
except (exceptions.NoSuchElementException):
time.sleep(3)

View File

@@ -58,7 +58,7 @@ def test_create_keypair_demo(login, driver, openstack_demo, clear_keypair_demo,
type_options.find_element_by_css_selector('option[label="SSH Key"]').click()
keypair_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Key pair {keypair_name} was successfully created.'
assert (f'Success: Key pair {keypair_name} was successfully created.'
in messages)
assert openstack_demo.compute.find_keypair(keypair_name) is not None

View File

@@ -19,7 +19,7 @@ from openstack_dashboard.test.selenium import widgets
@pytest.fixture
def metadata_namespace_name():
return('horizon_metadata_namespace_%s' %
return ('horizon_metadata_namespace_%s' %
uuidutils.generate_uuid(dashed=False))
@@ -78,7 +78,7 @@ def test_create_metadata_namespace(login, driver, metadata_namespace_name,
namespace_form.find_element_by_id("id_direct_input").send_keys(namespace)
namespace_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Namespace {metadata_namespace_name} "
assert (f"Success: Namespace {metadata_namespace_name} "
f"has been created." in messages)
try:
openstack_admin.image.get_metadef_namespace(metadata_namespace_name)
@@ -105,7 +105,7 @@ def test_delete_metadata_namespace(login, driver, new_metadata_namespace,
widgets.select_from_dropdown(actions_column, "Delete Namespace")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Deleted Namespace: "
assert (f"Success: Deleted Namespace: "
f"{new_metadata_namespace.namespace}" in messages)
try:
openstack_admin.image.get_metadef_namespace(

View File

@@ -77,7 +77,7 @@ def ensure_checkbox(required_state, element):
current_state = element.is_selected()
if required_state != current_state:
element.find_element_by_xpath(
f".//following-sibling::label").click() # noqa: E231
".//following-sibling::label").click() # noqa: E231
def test_create_network_without_subnet_demo(login, openstack_demo, driver,

View File

@@ -126,7 +126,7 @@ def test_add_member_to_project(login, driver, project_name, openstack_admin,
".btn-primary[value='Save']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: Modified project "{project_name}".' in messages
assert(openstack_admin.identity.validate_user_has_project_role(
assert (openstack_admin.identity.validate_user_has_project_role(
project=new_project,
user=openstack_admin.identity.find_user(admin_name).id,
role=openstack_admin.identity.find_role(regular_role_name).id,)
@@ -157,9 +157,9 @@ def test_add_role_to_project_member(login, driver, openstack_admin, config,
project_form.find_element_by_css_selector(
".btn-primary[value='Save']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Modified project '
assert (f'Success: Modified project '
f'"{new_project_with_admin.name}".' in messages)
assert(openstack_admin.identity.validate_user_has_project_role(
assert (openstack_admin.identity.validate_user_has_project_role(
project=new_project_with_admin,
user=openstack_admin.identity.find_user(admin_name).id,
role=openstack_admin.identity.find_role(regular_role_name).id,) and
@@ -194,7 +194,7 @@ def test_add_group_to_project(login, driver, openstack_admin,
".btn-primary[value='Save']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: Modified project "{new_project.name}".' in messages
assert(openstack_admin.identity.validate_group_has_project_role(
assert (openstack_admin.identity.validate_group_has_project_role(
project=new_project,
group=openstack_admin.identity.find_group(group_name).id,
role=openstack_admin.identity.find_role(regular_role_name).id,)
@@ -226,9 +226,9 @@ def test_add_role_to_project_group(login, driver, openstack_admin, config,
project_form.find_element_by_css_selector(
".btn-primary[value='Save']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Modified project '
assert (f'Success: Modified project '
f'"{new_project_with_group.name}".' in messages)
assert(openstack_admin.identity.validate_group_has_project_role(
assert (openstack_admin.identity.validate_group_has_project_role(
project=new_project_with_group,
group=openstack_admin.identity.find_group(group_name).id,
role=openstack_admin.identity.find_role(regular_role_name).id,) and

View File

@@ -110,7 +110,7 @@ def test_create_router_demo(login, driver, router_name, openstack_demo,
router_form.find_element_by_css_selector(
".btn-primary[value='Create Router']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Router {router_name} was successfully created.'
assert (f'Success: Router {router_name} was successfully created.'
in messages)
assert openstack_demo.network.find_router(router_name) is not None
@@ -202,7 +202,7 @@ def test_router_delete_interface_demo(login, driver, router_name,
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Deleted Interface: {extracted_port_name}" in messages
assert(openstack_demo.network.find_port(
assert (openstack_demo.network.find_port(
new_interface['port_id']) is None)
@@ -223,19 +223,19 @@ def test_router_set_gateway_demo(login, driver, new_router_demo,
f"/routers/{new_router_demo.id}"
f"?fields=id&fields=name&fields="
f"external_gateway_info").json()['router']
assert(router_sdk["external_gateway_info"] is None)
assert (router_sdk["external_gateway_info"] is None)
rows[0].find_element_by_css_selector(".data-table-action").click()
gateway_form = driver.find_element_by_css_selector(".modal-dialog form")
widgets.select_from_specific_dropdown_in_form(
gateway_form, 'id_network_id', config.network.external_network)
gateway_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Gateway interface is added" in messages
assert "Success: Gateway interface is added" in messages
router_sdk = openstack_demo.network.get(
f"/routers/{new_router_demo.id}"
f"?fields=id&fields=name&fields="
f"external_gateway_info").json()['router']
assert(router_sdk["external_gateway_info"]["network_id"] ==
assert (router_sdk["external_gateway_info"]["network_id"] ==
openstack_demo.network.find_network(
config.network.external_network).id)
@@ -257,19 +257,19 @@ def test_router_clear_gateway_demo(login, driver, new_router_with_gateway,
f"/routers/{new_router_with_gateway.id}"
f"?fields=id&fields=name&fields="
f"external_gateway_info").json()['router']
assert(router_sdk["external_gateway_info"]["network_id"] ==
assert (router_sdk["external_gateway_info"]["network_id"] ==
openstack_demo.network.find_network(
config.network.external_network).id)
rows[0].find_element_by_css_selector(".data-table-action").click()
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Cleared Gateway: {new_router_with_gateway.name}" in
assert (f"Success: Cleared Gateway: {new_router_with_gateway.name}" in
messages)
router_sdk = openstack_demo.network.get(
f"/routers/{new_router_with_gateway.id}"
f"?fields=id&fields=name&fields="
f"external_gateway_info").json()['router']
assert(router_sdk["external_gateway_info"] is None)
assert (router_sdk["external_gateway_info"] is None)
def test_create_router_admin(login, driver, router_name, openstack_admin,
@@ -291,7 +291,7 @@ def test_create_router_admin(login, driver, router_name, openstack_admin,
router_form.find_element_by_css_selector(
".btn-primary[value='Create Router']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Router {router_name} was successfully created.'
assert (f'Success: Router {router_name} was successfully created.'
in messages)
assert openstack_admin.network.find_router(router_name) is not None

View File

@@ -67,9 +67,9 @@ def test_create_sec_group_demo(login, driver, config, sec_group_name,
sec_group_form.find_element_by_id("id_name").send_keys(sec_group_name)
sec_group_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Successfully created security group: {sec_group_name}'
assert (f'Success: Successfully created security group: {sec_group_name}'
in messages)
assert(openstack_demo.network.find_security_group(sec_group_name)
assert (openstack_demo.network.find_security_group(sec_group_name)
is not None)
@@ -109,13 +109,13 @@ def test_add_rule_sec_group_demo(login, driver, sec_group_name, openstack_demo,
rule_form.find_element_by_id("id_port").send_keys(rule_port)
rule_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Successfully added rule: ALLOW IPv4 {rule_port}"
assert (f"Success: Successfully added rule: ALLOW IPv4 {rule_port}"
f"/tcp from 0.0.0.0/0" in messages)
sec_group_rules_sdk = openstack_demo.network.find_security_group(
sec_group_name).security_group_rules
rule_port_found = False
for rule_sdk in sec_group_rules_sdk:
if(rule_sdk['port_range_min'] == rule_port and
if (rule_sdk['port_range_min'] == rule_port and
rule_sdk['port_range_max'] == rule_port):
rule_port_found = True
assert rule_port_found
@@ -139,7 +139,7 @@ def test_delete_rule_sec_group_demo(login, driver, sec_group_name,
rows[0].find_element_by_css_selector("td.actions_column").click()
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Deleted Rule: ALLOW IPv4 {rule_port}/tcp from 0.0.0.0/0"
assert (f"Success: Deleted Rule: ALLOW IPv4 {rule_port}/tcp from 0.0.0.0/0"
in messages)
sec_group_rules_sdk = openstack_demo.network.find_security_group(
sec_group_name).security_group_rules
@@ -148,4 +148,4 @@ def test_delete_rule_sec_group_demo(login, driver, sec_group_name,
if (rule_sdk['port_range_min'] == rule_port and
rule_sdk['port_range_max'] == rule_port):
rule_port_found = True
assert not(rule_port_found)
assert not (rule_port_found)

View File

@@ -51,7 +51,7 @@ def test_create_user_credential_totp(login, driver, openstack_admin, config,
))
driver.get(url)
credentials_sdk_before = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk_before) == 0)
assert (len(credentials_sdk_before) == 0)
driver.find_element_by_link_text("Create User Credential").click()
user_credential_form = driver.find_element_by_css_selector(
".modal-dialog form")
@@ -59,9 +59,9 @@ def test_create_user_credential_totp(login, driver, openstack_admin, config,
user_credential_form, 'id_cred_type', 'TOTP')
user_credential_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: User credential created successfully.' in messages
assert 'Success: User credential created successfully.' in messages
credentials_sdk_after = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk_after) == 1 and
assert (len(credentials_sdk_after) == 1 and
credentials_sdk_after[0]['type'] == 'totp')
@@ -75,7 +75,7 @@ def test_create_user_credential_ec2(login, driver, openstack_admin, config,
))
driver.get(url)
credentials_sdk_before = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk_before) == 0)
assert (len(credentials_sdk_before) == 0)
driver.find_element_by_link_text("Create User Credential").click()
user_credential_form = driver.find_element_by_css_selector(
".modal-dialog form")
@@ -88,9 +88,9 @@ def test_create_user_credential_ec2(login, driver, openstack_admin, config,
user_credential_form, 'id_project', 'admin')
user_credential_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: User credential created successfully.' in messages
assert 'Success: User credential created successfully.' in messages
credentials_sdk_after = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk_after) == 1 and
assert (len(credentials_sdk_after) == 1 and
credentials_sdk_after[0]['type'] == 'ec2' and
(credentials_sdk_after[0]['blob'] ==
'{"access": "acs", "secret": "scrt"}') and
@@ -114,10 +114,10 @@ def test_delete_user_credential(login, driver, openstack_admin, config,
widgets.select_from_dropdown(actions_column, "Delete User Credential")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Deleted User Credential: {user_credential_blob}" in
assert (f"Success: Deleted User Credential: {user_credential_blob}" in
messages)
credentials_sdk_after = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk_after) == 0)
assert (len(credentials_sdk_after) == 0)
def test_edit_user_credential(login, driver, openstack_admin, config,
@@ -140,9 +140,9 @@ def test_edit_user_credential(login, driver, openstack_admin, config,
f"EDITED_{user_credential_blob}")
user_credential_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: User credential updated successfully." in messages)
assert ("Success: User credential updated successfully." in messages)
credentials_sdk = list(openstack_admin.identity.credentials())
assert(len(credentials_sdk) == 1 and
assert (len(credentials_sdk) == 1 and
credentials_sdk[0]['blob'] == f'EDITED_{user_credential_blob}')
@@ -163,12 +163,12 @@ def test_user_credential_filtration(login, driver, openstack_admin,
try:
driver.find_element_by_xpath(
"//td[text()='No items to display.']")
except(exceptions.NoSuchElementException):
except exceptions.NoSuchElementException:
assert False, "Message 'No items to display' not found"
filter_input_field = driver.find_element_by_css_selector(".form-control")
filter_input_field.clear()
filter_input_field.send_keys('admin')
driver.find_element_by_id("credentialstable__action_filter").click()
rows = driver.find_elements_by_css_selector(
f"table#credentialstable tr[data-display]")
"table#credentialstable tr[data-display]")
assert len(rows) == 1

View File

@@ -102,4 +102,4 @@ def test_change_user_password(login, driver, user_name, new_user, config):
"id_confirm_password").send_keys(new_password)
password_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: User password has been updated successfully." in messages
assert "Success: User password has been updated successfully." in messages

View File

@@ -164,7 +164,7 @@ def test_create_volume_snapshot_demo(login, driver, volume_name,
volume_snapshot_name)
create_snap_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Creating volume snapshot "{volume_snapshot_name}".'
assert (f'Info: Creating volume snapshot "{volume_snapshot_name}".'
in messages)
assert (openstack_demo.block_storage.find_snapshot(volume_snapshot_name)
is not None)
@@ -188,7 +188,7 @@ def test_delete_volume_snapshot_demo(login, driver, volume_snapshot_names,
widgets.select_from_dropdown(actions_column, "Delete Volume Snapshot")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Scheduled deletion of Volume Snapshot: "
assert (f"Success: Scheduled deletion of Volume Snapshot: "
f"{volume_snapshot_name}" in messages)
wait_for_volume_snapshot_is_deleted(openstack_demo, volume_snapshot_name)
assert (openstack_demo.block_storage.find_snapshot(volume_snapshot_name)
@@ -217,9 +217,9 @@ def test_edit_volume_snapshot_description_demo(login, driver, openstack_demo,
f"EDITED_Description for: {new_volume_snapshot_demo.name}")
snapshot_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Updating volume snapshot '
assert (f'Info: Updating volume snapshot '
f'"{new_volume_snapshot_demo.name}"' in messages)
assert(openstack_demo.block_storage.find_snapshot(
assert (openstack_demo.block_storage.find_snapshot(
new_volume_snapshot_demo.name).description ==
f"EDITED_Description for: {new_volume_snapshot_demo.name}")
@@ -247,8 +247,8 @@ def test_create_volume_from_volume_snapshot_demo(login, driver, openstack_demo,
volume_from_snapshot_name)
volume_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Creating volume "{volume_from_snapshot_name}"' in messages)
assert(openstack_demo.block_storage.find_volume(
assert (f'Info: Creating volume "{volume_from_snapshot_name}"' in messages)
assert (openstack_demo.block_storage.find_volume(
volume_from_snapshot_name) is not None)
@@ -270,12 +270,12 @@ def test_delete_volume_from_volume_snapshot_demo(login, driver, openstack_demo,
widgets.select_from_dropdown(actions_column, "Delete Volume")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Info: Scheduled deletion of Volume: "
assert (f"Info: Scheduled deletion of Volume: "
f"{new_volume_from_snapshot_demo.name}" in messages)
test_volumes.wait_for_volume_is_deleted(
openstack_demo, new_volume_from_snapshot_demo.name)
assert (openstack_demo.block_storage.find_volume(
new_volume_from_snapshot_demo.name)is None)
new_volume_from_snapshot_demo.name) is None)
def test_delete_snapshot_before_volume_demo(login, driver, openstack_demo,
@@ -303,7 +303,7 @@ def test_delete_snapshot_before_volume_demo(login, driver, openstack_demo,
"Delete Volume Snapshot")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Scheduled deletion of Volume Snapshot: "
assert (f"Success: Scheduled deletion of Volume Snapshot: "
f"{volume_snapshot_name}" in messages)
wait_for_volume_snapshot_is_deleted(openstack_demo, volume_snapshot_name)
assert (openstack_demo.block_storage.find_snapshot(volume_snapshot_name)
@@ -323,7 +323,7 @@ def test_delete_snapshot_before_volume_demo(login, driver, openstack_demo,
widgets.select_from_dropdown(actions_column_volume, "Delete Volume")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Info: Scheduled deletion of Volume: "
assert (f"Info: Scheduled deletion of Volume: "
f"{new_volume_from_snapshot_demo.name}" in messages)
test_volumes.wait_for_volume_is_deleted(
openstack_demo, new_volume_from_snapshot_demo.name)
@@ -426,7 +426,7 @@ def test_create_volume_snapshot_admin(login, driver, new_volume_admin,
volume_snapshot_name)
snapshot_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Creating volume snapshot "{volume_snapshot_name}".'
assert (f'Info: Creating volume snapshot "{volume_snapshot_name}".'
in messages)
assert (openstack_admin.block_storage.find_snapshot(volume_snapshot_name)
is not None)
@@ -449,12 +449,12 @@ def test_delete_volume_snapshot_admin(login, driver, openstack_admin,
widgets.select_from_dropdown(actions_column, "Delete Volume Snapshot")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Scheduled deletion of Volume Snapshot: "
assert (f"Success: Scheduled deletion of Volume Snapshot: "
f"{new_volume_snapshot_admin.name}" in messages)
wait_for_volume_snapshot_is_deleted(openstack_admin,
new_volume_snapshot_admin.name)
assert (openstack_admin.block_storage.find_snapshot(
new_volume_snapshot_admin.name)is None)
new_volume_snapshot_admin.name) is None)
def test_edit_volume_snapshot_description_admin(login, driver, openstack_admin,
@@ -479,9 +479,9 @@ def test_edit_volume_snapshot_description_admin(login, driver, openstack_admin,
f"EDITED_Description for: {new_volume_snapshot_admin.name}")
snapshot_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Updating volume snapshot '
assert (f'Info: Updating volume snapshot '
f'"{new_volume_snapshot_admin.name}"' in messages)
assert(openstack_admin.block_storage.find_snapshot(
assert (openstack_admin.block_storage.find_snapshot(
new_volume_snapshot_admin.name).description ==
f"EDITED_Description for: {new_volume_snapshot_admin.name}")

View File

@@ -144,7 +144,7 @@ def test_edit_volume_description_demo(login, driver, volume_name, config,
volume_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Info: Updating volume "{volume_name}"' in messages
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
volume_name).description == f"EDITED_Description for: {volume_name}")
@@ -161,7 +161,7 @@ def test_extend_volume_demo(login, driver, openstack_demo, new_volume_demo,
f"table#volumes tr[data-display='{new_volume_demo.name}']"
)
assert len(rows) == 1
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
new_volume_demo.name).size == 1)
actions_column = rows[0].find_element_by_css_selector("td.actions_column")
widgets.select_from_dropdown(actions_column, "Extend Volume")
@@ -172,7 +172,7 @@ def test_extend_volume_demo(login, driver, openstack_demo, new_volume_demo,
messages = widgets.get_and_dismiss_messages(driver)
assert f'Info: Extending volume: "{new_volume_demo.name}"' in messages
wait_for_steady_state_of_volume(openstack_demo, new_volume_demo.name)
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
new_volume_demo.name).size == 2)
@@ -218,7 +218,7 @@ def test_volume_launch_as_instance_demo(login, driver, openstack_demo,
WebDriverWait(driver, config.selenium.page_timeout).until(
EC.invisibility_of_element_located(actions_column))
wait_for_steady_state_of_volume(openstack_demo, new_volume_demo.name)
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
new_volume_demo.name).attachments[0]['server_id'] ==
openstack_demo.compute.find_server(instance_name).id)
@@ -245,7 +245,7 @@ def test_volume_upload_to_image_demo(login, driver, openstack_demo,
volume_form.find_element_by_css_selector(
".btn-primary[value='Upload']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Info: Successfully sent the request to upload volume to image for '
assert ('Info: Successfully sent the request to upload volume to image for '
f'volume: "{new_volume_demo.name}"' in messages)
wait_for_steady_state_of_volume(openstack_demo, new_volume_demo.name)
assert openstack_demo.compute.find_image(image_names[0]) is not None
@@ -346,10 +346,10 @@ def test_manage_volume_attachments(login, driver, openstack_demo,
attach_to_instance_form.find_element_by_css_selector(
".btn-primary[value='Attach Volume']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Info: Attaching volume {new_volume_demo.name} to instance "
assert (f"Info: Attaching volume {new_volume_demo.name} to instance "
f"{new_instance_demo.name} on /dev/vdb." in messages)
wait_for_steady_state_of_volume(openstack_demo, new_volume_demo.name)
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
new_volume_demo.id).attachments[0]['server_id'] ==
new_instance_demo.id)
@@ -369,10 +369,10 @@ def test_manage_volume_attachments(login, driver, openstack_demo,
driver.find_element_by_xpath(
".//a[normalize-space()='Detach Volume']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Detaching Volume: Volume {new_volume_demo.name} "
assert (f"Success: Detaching Volume: Volume {new_volume_demo.name} "
f"on instance {new_instance_demo.name}" in messages)
wait_for_steady_state_of_volume(openstack_demo, new_volume_demo.name)
assert(openstack_demo.block_storage.find_volume(
assert (openstack_demo.block_storage.find_volume(
new_volume_demo.id).attachments == [])
@@ -470,7 +470,7 @@ def test_edit_volume_description_admin(login, driver, volume_name, config,
volume_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Info: Updating volume "{volume_name}"' in messages
assert(openstack_admin.block_storage.find_volume(
assert (openstack_admin.block_storage.find_volume(
volume_name).description == f"EDITED_Description for: {volume_name}")

View File

@@ -108,7 +108,7 @@ def test_create_volume_type(login, driver, volume_type_name, openstack_admin,
volume_type_form.find_element_by_id("id_name").send_keys(volume_type_name)
volume_type_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Successfully created volume '
assert (f'Success: Successfully created volume '
f'type: {volume_type_name}' in messages)
assert openstack_admin.block_storage.find_type(volume_type_name) is not None
@@ -151,9 +151,9 @@ def test_volume_type_create_encryption(login, driver, openstack_admin, config,
volume_type_form.find_element_by_css_selector(
".btn-primary[value='Create Volume Type Encryption']").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Successfully created encryption for "
assert (f"Success: Successfully created encryption for "
f"volume type: {new_volume_type.name}" in messages)
assert(openstack_admin.block_storage.get_type_encryption(
assert (openstack_admin.block_storage.get_type_encryption(
new_volume_type.id).provider == 'plain')
@@ -170,16 +170,16 @@ def test_volume_type_delete_encryption(login, driver, openstack_admin, config,
f"table#volume_types tr[data-display="
f"'{new_volume_type_with_encryption.name}']")
assert len(rows) == 1
assert(openstack_admin.block_storage.get_type_encryption(
assert (openstack_admin.block_storage.get_type_encryption(
new_volume_type_with_encryption.id).provider == 'plain')
rows[0].find_element_by_css_selector(".data-table-action")
actions_column = rows[0].find_element_by_css_selector("td.actions_column")
widgets.select_from_dropdown(actions_column, "Delete Encryption")
widgets.confirm_modal(driver)
messages = widgets.get_and_dismiss_messages(driver)
assert(f"Success: Deleted Encryption: "
assert (f"Success: Deleted Encryption: "
f"{new_volume_type_with_encryption.name}" in messages)
assert(openstack_admin.block_storage.get_type_encryption(
assert (openstack_admin.block_storage.get_type_encryption(
new_volume_type_with_encryption.id).provider is None)
@@ -197,11 +197,11 @@ def test_create_qos_spec(login, driver, qos_spec_name, openstack_admin,
volume_qos_form.find_element_by_id("id_name").send_keys(qos_spec_name)
volume_qos_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert(f'Success: Successfully created QoS '
assert (f'Success: Successfully created QoS '
f'Spec: {qos_spec_name}' in messages)
qos_specs = openstack_admin.block_storage.get(
"/qos-specs").json()['qos_specs']
assert(len([spec for spec in qos_specs if qos_spec_name ==
assert (len([spec for spec in qos_specs if qos_spec_name ==
spec['name']]) > 0)
@@ -224,7 +224,7 @@ def test_delete_qos_spec(login, driver, qos_spec_name, openstack_admin,
assert f"Success: Deleted QoS Spec: {qos_spec_name}" in messages
qos_specs = openstack_admin.block_storage.get(
"/qos-specs").json()['qos_specs']
assert(len([spec for spec in qos_specs if qos_spec_name ==
assert (len([spec for spec in qos_specs if qos_spec_name ==
spec['name']]) == 0)
@@ -240,7 +240,7 @@ def test_edit_qos_spec_consumer(login, driver, openstack_admin, config,
rows = driver.find_elements_by_css_selector(
f"table#qos_specs tr[data-display='{new_qos_spec['name']}']")
assert len(rows) == 1
assert(openstack_admin.block_storage.get(
assert (openstack_admin.block_storage.get(
f"/qos-specs/{new_qos_spec['id']}").json()['qos_specs']['consumer'] ==
'back-end')
actions_column = rows[0].find_element_by_css_selector("td.actions_column")
@@ -249,8 +249,8 @@ def test_edit_qos_spec_consumer(login, driver, openstack_admin, config,
widgets.select_from_dropdown(volume_qos_form, 'front-end')
volume_qos_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Successfully modified QoS Spec consumer." in messages
assert(openstack_admin.block_storage.get(
assert "Success: Successfully modified QoS Spec consumer." in messages
assert (openstack_admin.block_storage.get(
f"/qos-specs/{new_qos_spec['id']}").json()['qos_specs']['consumer'] ==
'front-end')
@@ -275,8 +275,8 @@ def test_qos_spec_create_extra_specs(login, driver, openstack_admin, config,
extra_specs_form.find_element_by_id("id_value").send_keys(20)
extra_specs_form.find_element_by_css_selector(".btn-primary").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f'Success: Created spec "minIOPS".' in messages
assert(openstack_admin.block_storage.get(
assert 'Success: Created spec "minIOPS".' in messages
assert (openstack_admin.block_storage.get(
f"/qos-specs/{new_qos_spec['id']}").json()['qos_specs']['specs'] ==
{'minIOPS': '20'})
@@ -294,13 +294,13 @@ def test_qos_spec_delete_extra_specs(login, driver, openstack_admin, config,
f'table#qos_specs tr[data-display="'
f'{new_qos_spec_with_extra_specs["name"]}"]')
assert len(rows) == 1
assert(openstack_admin.block_storage.get(
assert (openstack_admin.block_storage.get(
f"/qos-specs/{new_qos_spec_with_extra_specs['id']}").json()
['qos_specs']['specs'] == {'maxIOPS': '5000'})
rows[0].find_element_by_css_selector(".data-table-action").click()
volume_qos_form = driver.find_element_by_css_selector(".modal-dialog form")
rows_extra = volume_qos_form.find_elements_by_css_selector(
f"table#specs tr[data-display='maxIOPS']")
"table#specs tr[data-display='maxIOPS']")
assert len(rows_extra) == 1
actions_column = rows_extra[0].find_element_by_css_selector(
"td.actions_column")
@@ -308,7 +308,7 @@ def test_qos_spec_delete_extra_specs(login, driver, openstack_admin, config,
driver.find_element_by_css_selector(
".modal-dialog .modal-footer .btn-danger").click()
messages = widgets.get_and_dismiss_messages(driver)
assert f"Success: Deleted Spec: maxIOPS" in messages
assert(openstack_admin.block_storage.get(
assert "Success: Deleted Spec: maxIOPS" in messages
assert (openstack_admin.block_storage.get(
f"/qos-specs/{new_qos_spec_with_extra_specs['id']}").json()
['qos_specs']['specs'] == {})

View File

@@ -61,9 +61,10 @@ def test_delete_multiple_instance_rows(live_server, driver, dashboard_data,
def test_delete_multiple_images_rows(live_server, driver, dashboard_data,
user):
with mock.patch.object(
api.glance, 'image_list_detailed') as mocked_i_l_d,\
api.glance, 'image_list_detailed') as mocked_i_l_d, \
mock.patch.object(
api.glance, 'metadefs_namespace_full_list') as mocked_m_n_f_l,\
api.glance,
'metadefs_namespace_full_list') as mocked_m_n_f_l, \
mock.patch.object(
api.glance, 'image_delete') as mocked_i_d:
mocked_i_l_d.return_value = (

View File

@@ -52,26 +52,26 @@ def test_vcpu_pcpu_data_display(live_server, driver, user, dashboard_data):
driver.get(live_server.url + '/admin/hypervisors')
assert (driver.find_element_by_xpath(
f"//*[normalize-space()='vCPU Usage']/"
f"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
f"/div[contains(@class,'h6')]/" # noqa: E231
f"span[1]").text == str(p['vcpus_used']))
"//*[normalize-space()='vCPU Usage']/"
"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
"/div[contains(@class,'h6')]/" # noqa: E231
"span[1]").text == str(p['vcpus_used']))
assert (driver.find_element_by_xpath(
f"//*[normalize-space()='vCPU Usage']/"
f"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
f"/div[contains(@class,'h6')]/" # noqa: E231
f"span[2]").text == str(p['vcpus_capacity']))
"//*[normalize-space()='vCPU Usage']/"
"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
"/div[contains(@class,'h6')]/" # noqa: E231
"span[2]").text == str(p['vcpus_capacity']))
assert (driver.find_element_by_xpath(
f"//*[normalize-space()='pCPU Usage']/"
f"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
f"/div[contains(@class,'h6')]/" # noqa: E231
f"span[1]").text == str(p['pcpus_used']))
"//*[normalize-space()='pCPU Usage']/"
"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
"/div[contains(@class,'h6')]/" # noqa: E231
"span[1]").text == str(p['pcpus_used']))
assert (driver.find_element_by_xpath(
f"//*[normalize-space()='pCPU Usage']/"
f"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
f"/div[contains(@class,'h6')]/" # noqa: E231
f"span[2]").text == str(p['pcpus_capacity']))
"//*[normalize-space()='pCPU Usage']/"
"ancestor::div[contains(@class,'d3_quota_bar')]" # noqa: E231
"/div[contains(@class,'h6')]/" # noqa: E231
"span[2]").text == str(p['pcpus_capacity']))
driver.find_element_by_link_text("Resource Provider").click()
resource_provider_tab = driver.find_element_by_id(

View File

@@ -37,7 +37,8 @@ def test_switch_to_material_theme(live_server, driver, user, config):
driver.find_element_by_css_selector(".navbar-default")))
options = user_dropdown_menu.find_element_by_css_selector(
"ul.dropdown-menu[id='editor_list']")
options.find_element_by_xpath(f".//*[normalize-space()='Material']").click()
options.find_element_by_xpath(
".//*[normalize-space()='Material']").click()
WebDriverWait(driver, config.selenium.page_timeout).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, '.material-header')))
user_dropdown_menu = driver.find_element_by_css_selector(

View File

@@ -11,6 +11,7 @@
# under the License.
from dataclasses import dataclass
from selenium.common import exceptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

View File

@@ -18,7 +18,7 @@ deps =
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
# Unit test for a local hacking rule requires hacking.
hacking>=3.0.1,<3.1.0 # Apache-2.0
hacking>=7.0.0,<7.1.0 # Apache-2.0
commands =
dj42: pip install django>=4.2,<4.3
find . -type f -name "*.pyc" -delete
@@ -30,7 +30,7 @@ commands = {posargs}
[testenv:pep8]
deps =
{[testenv]deps}
flake8-import-order==0.12 # LGPLv3
flake8-import-order>=0.18.0,<0.19.0 # LGPLv3
pylint==3.3.1 # GPLv2
bandit[baseline]>=1.7.7 # Apache-2.0
setenv =
@@ -198,7 +198,9 @@ exclude = .git,.tox,dist,*lib/python*,*egg,build,panel_template,dash_template,lo
# Existing codes follows W503, so we disable W504.)
# F405 TEMPLATES may be undefined, or defined from star imports
# (because it is not easy to avoid this in openstack_dashboard.test.settings)
ignore = W504,F405
# I201 Missing newline between import groups.
# I202 Additional newline in a group of imports.
ignore = W504,F405,I201,I202
# Enable the following hacking rules which are disabled by default
# H106 Do not put vim configuration in source files.
# H203 Use assertIs(Not)None to check for None.