[Tempest] Add valuable tags to tests
To be able to run tests based on following criteria:
- Only API is required and tested.
- API and share back-end required, API is tested.
- API and share back-end required, back-end is tested
Also, add doc with detailed description of running subset of tests.
Change-Id: I9ae105eaa527621c85d5038bba15edf4b065eaa3
Closes-Bug: #1587874
diff --git a/manila_tempest_tests/tests/api/admin/test_admin_actions.py b/manila_tempest_tests/tests/api/admin/test_admin_actions.py
index 108173e..bc89642 100644
--- a/manila_tempest_tests/tests/api/admin/test_admin_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_admin_actions.py
@@ -39,13 +39,13 @@
if CONF.share.run_snapshot_tests:
cls.sn = cls.create_snapshot_wait_for_active(cls.sh["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_reset_share_state(self):
for status in self.states:
self.shares_v2_client.reset_state(self.sh["id"], status=status)
self.shares_v2_client.wait_for_share_status(self.sh["id"], status)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_reset_share_instance_state(self):
id = self.sh_instance["id"]
for status in self.states:
@@ -53,7 +53,7 @@
id, s_type="share_instances", status=status)
self.shares_v2_client.wait_for_share_instance_status(id, status)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_reset_snapshot_state_to_error(self):
@@ -63,7 +63,7 @@
self.shares_v2_client.wait_for_snapshot_status(
self.sn["id"], status)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_force_delete_share(self):
share = self.create_share()
@@ -78,7 +78,7 @@
self.shares_v2_client.force_delete(share["id"])
self.shares_v2_client.wait_for_resource_deletion(share_id=share["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_force_delete_share_instance(self):
share = self.create_share(cleanup_in_class=False)
instances = self.shares_v2_client.get_instances_of_share(share["id"])
@@ -101,7 +101,7 @@
self.shares_v2_client.wait_for_resource_deletion(
share_instance_id=instance["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_force_delete_snapshot(self):
@@ -119,7 +119,7 @@
self.shares_v2_client.force_delete(sn["id"], s_type="snapshots")
self.shares_v2_client.wait_for_resource_deletion(snapshot_id=sn["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_reset_share_task_state(self):
for task_state in self.task_states:
diff --git a/manila_tempest_tests/tests/api/admin/test_admin_actions_negative.py b/manila_tempest_tests/tests/api/admin/test_admin_actions_negative.py
index 82fcd5a..be760c0 100644
--- a/manila_tempest_tests/tests/api/admin/test_admin_actions_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_admin_actions_negative.py
@@ -38,30 +38,13 @@
cls.member_shares_client = clients.Manager().shares_client
cls.member_shares_v2_client = clients.Manager().shares_v2_client
- @test.attr(type=["gate", "negative", ])
- def test_reset_nonexistent_share_state(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.reset_state, "fake")
-
- @test.attr(type=["gate", "negative", ])
- def test_reset_nonexistent_share_instance_state(self):
- self.assertRaises(lib_exc.NotFound, self.shares_v2_client.reset_state,
- "fake", s_type="share_instances")
-
- @test.attr(type=["gate", "negative", ])
- @testtools.skipUnless(CONF.share.run_snapshot_tests,
- "Snapshot tests are disabled.")
- def test_reset_nonexistent_snapshot_state(self):
- self.assertRaises(lib_exc.NotFound, self.shares_client.reset_state,
- "fake", s_type="snapshots")
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_reset_share_state_to_unacceptable_state(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.reset_state,
self.sh["id"], status="fake")
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_reset_share_instance_state_to_unacceptable_state(self):
self.assertRaises(
lib_exc.BadRequest,
@@ -71,7 +54,7 @@
status="fake"
)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_reset_snapshot_state_to_unacceptable_state(self):
@@ -79,21 +62,21 @@
self.shares_client.reset_state,
self.sn["id"], s_type="snapshots", status="fake")
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_reset_share_state_with_member(self):
# Even if member from another tenant, it should be unauthorized
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.reset_state,
self.sh["id"])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_reset_share_instance_state_with_member(self):
# Even if member from another tenant, it should be unauthorized
self.assertRaises(lib_exc.Forbidden,
self.member_shares_v2_client.reset_state,
self.sh_instance["id"], s_type="share_instances")
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_try_reset_snapshot_state_with_member(self):
@@ -102,42 +85,21 @@
self.member_shares_client.reset_state,
self.sn["id"], s_type="snapshots")
- @test.attr(type=["gate", "negative", ])
- def test_force_delete_nonexistent_share(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.force_delete, "fake")
-
- @test.attr(type=["gate", "negative", ])
- def test_force_delete_nonexistent_share_instance(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.force_delete,
- "fake",
- s_type="share_instances")
-
- @test.attr(type=["gate", "negative", ])
- @testtools.skipUnless(CONF.share.run_snapshot_tests,
- "Snapshot tests are disabled.")
- def test_force_delete_nonexistent_snapshot(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.force_delete,
- "fake",
- s_type="snapshots")
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_force_delete_share_with_member(self):
# If a non-admin tries to do force_delete, it should be unauthorized
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.force_delete,
self.sh["id"])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_force_delete_share_instance_with_member(self):
# If a non-admin tries to do force_delete, it should be unauthorized
self.assertRaises(lib_exc.Forbidden,
self.member_shares_v2_client.force_delete,
self.sh_instance["id"], s_type="share_instances")
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_try_force_delete_snapshot_with_member(self):
@@ -146,20 +108,14 @@
self.member_shares_client.force_delete,
self.sn["id"], s_type="snapshots")
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_get_share_instance_with_member(self):
# If a non-admin tries to get instance, it should be unauthorized
self.assertRaises(lib_exc.Forbidden,
self.member_shares_v2_client.get_share_instance,
self.sh_instance["id"])
- @test.attr(type=["gate", "negative", ])
- def test_try_list_share_instance_with_member(self):
- # If a non-admin tries to list instances, it should be unauthorized
- self.assertRaises(lib_exc.Forbidden,
- self.member_shares_v2_client.list_share_instances)
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_get_instances_of_share_with_member(self):
# If a non-admin tries to list instances of given share, it should be
# unauthorized
@@ -167,23 +123,75 @@
self.member_shares_v2_client.get_instances_of_share,
self.sh['id'])
- @test.attr(type=["gate", "negative", ])
- @base.skip_if_microversion_lt("2.15")
- def test_reset_task_state_share_not_found(self):
- self.assertRaises(
- lib_exc.NotFound, self.shares_v2_client.reset_task_state,
- 'fake_share', 'migration_error')
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_reset_task_state_empty(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.reset_task_state,
self.sh['id'], None)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_reset_task_state_invalid_state(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.reset_task_state,
self.sh['id'], 'fake_state')
+
+
+class AdminActionsAPIOnlyNegativeTest(base.BaseSharesAdminTest):
+
+ @classmethod
+ def resource_setup(cls):
+ super(AdminActionsAPIOnlyNegativeTest, cls).resource_setup()
+ cls.member_shares_v2_client = clients.Manager().shares_v2_client
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_try_list_share_instance_with_member(self):
+ # If a non-admin tries to list instances, it should be unauthorized
+ self.assertRaises(lib_exc.Forbidden,
+ self.member_shares_v2_client.list_share_instances)
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @base.skip_if_microversion_lt("2.15")
+ def test_reset_task_state_share_not_found(self):
+ self.assertRaises(
+ lib_exc.NotFound, self.shares_v2_client.reset_task_state,
+ 'fake_share', 'migration_error')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @testtools.skipUnless(CONF.share.run_snapshot_tests,
+ "Snapshot tests are disabled.")
+ def test_force_delete_nonexistent_snapshot(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.force_delete,
+ "fake",
+ s_type="snapshots")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_force_delete_nonexistent_share(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.force_delete, "fake")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_force_delete_nonexistent_share_instance(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.force_delete,
+ "fake",
+ s_type="share_instances")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_reset_nonexistent_share_state(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.reset_state, "fake")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_reset_nonexistent_share_instance_state(self):
+ self.assertRaises(lib_exc.NotFound, self.shares_v2_client.reset_state,
+ "fake", s_type="share_instances")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @testtools.skipUnless(CONF.share.run_snapshot_tests,
+ "Snapshot tests are disabled.")
+ def test_reset_nonexistent_snapshot_state(self):
+ self.assertRaises(lib_exc.NotFound, self.shares_client.reset_state,
+ "fake", s_type="snapshots")
diff --git a/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py b/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
index 21704ff..d427e1c 100644
--- a/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_consistency_group_actions.py
@@ -46,7 +46,7 @@
cls.consistency_group = cls.shares_v2_client.get_consistency_group(
cls.consistency_group['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_cg_from_cgsnapshot_with_multiple_share_types_v2_4(self):
# Create cgsnapshot
cgsnapshot = self.create_cgsnapshot_wait_for_active(
@@ -68,7 +68,7 @@
'Expected share types of %s, but got %s.' % (
expected_types, actual_types))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_cg_from_multi_typed_populated_cgsnapshot_v2_4(self):
share_name = data_utils.rand_name("tempest-share-name")
share_desc = data_utils.rand_name("tempest-share-description")
diff --git a/manila_tempest_tests/tests/api/admin/test_consistency_groups.py b/manila_tempest_tests/tests/api/admin/test_consistency_groups.py
index b064dcd..87b7f51 100644
--- a/manila_tempest_tests/tests/api/admin/test_consistency_groups.py
+++ b/manila_tempest_tests/tests/api/admin/test_consistency_groups.py
@@ -42,7 +42,7 @@
share_type = cls.create_share_type(name, extra_specs=extra_specs)
cls.share_type2 = share_type['share_type']
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_multiple_share_types_v2_4(self):
# Create a consistency group
consistency_group = self.create_consistency_group(
@@ -67,6 +67,7 @@
expected_share_types,
actual_share_types))
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_create_cg_from_cgsnapshot_verify_share_server_information(self):
diff --git a/manila_tempest_tests/tests/api/admin/test_consistency_groups_negative.py b/manila_tempest_tests/tests/api/admin/test_consistency_groups_negative.py
index dfccb6a..6532831 100644
--- a/manila_tempest_tests/tests/api/admin/test_consistency_groups_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_consistency_groups_negative.py
@@ -61,14 +61,14 @@
name=cls.cgsnap_name,
description=cls.cgsnap_desc)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_share_type_in_use_by_cg(self):
# Attempt delete of share type
self.assertRaises(exceptions.BadRequest,
self.shares_client.delete_share_type,
self.share_type['id'])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_share_of_unsupported_type_in_cg_v2_4(self):
# Attempt to create share of default type in the cg
self.assertRaises(exceptions.BadRequest,
@@ -77,7 +77,7 @@
consistency_group_id=self.consistency_group['id'],
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_share_in_cg_that_is_not_available_v2_4(self):
consistency_group = self.create_consistency_group(
cleanup_in_class=False, version='2.4')
@@ -122,7 +122,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cgsnapshot_of_cg_that_is_not_available_v2_4(self):
consistency_group = self.create_consistency_group(
cleanup_in_class=False, version='2.4')
@@ -161,7 +161,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cgsnapshot_of_cg_with_share_in_error_state_v2_4(self):
consistency_group = self.create_consistency_group(version='2.4')
share_name = data_utils.rand_name("tempest-share-name")
@@ -183,7 +183,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_cgsnapshot_not_in_available_or_error_v2_4(self):
cgsnapshot = self.create_cgsnapshot_wait_for_active(
self.consistency_group['id'],
@@ -216,7 +216,7 @@
cgsnapshot['id'],
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_cg_not_in_available_or_error_v2_4(self):
consistency_group = self.create_consistency_group(
cleanup_in_class=False, version='2.4')
@@ -243,7 +243,7 @@
consistency_group['id'],
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_conflicting_share_types_v2_4(self):
# Create conflicting share types
name = data_utils.rand_name("tempest-manila")
@@ -263,7 +263,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_multi_tenant_share_type_and_no_share_network_v2_4(
self):
# Create multi tenant share type
@@ -287,7 +287,7 @@
self.assertRaises(exceptions.BadRequest, create_cg)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_update_cg_share_types(self):
consistency_group = self.create_consistency_group(
cleanup_in_class=False, version='2.4')
diff --git a/manila_tempest_tests/tests/api/admin/test_export_locations.py b/manila_tempest_tests/tests/api/admin/test_export_locations.py
index a7b45a8..7c3d78d 100644
--- a/manila_tempest_tests/tests/api/admin/test_export_locations.py
+++ b/manila_tempest_tests/tests/api/admin/test_export_locations.py
@@ -101,7 +101,7 @@
# it making assertion that it has proper date value.
timeutils.parse_strtime(time)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.13')
def test_list_share_export_locations(self):
export_locations = self.admin_client.list_share_export_locations(
@@ -110,7 +110,7 @@
self._verify_export_location_structure(export_locations,
version='2.13')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.14')
def test_list_share_export_locations_with_preferred_flag(self):
export_locations = self.admin_client.list_share_export_locations(
@@ -119,7 +119,7 @@
self._verify_export_location_structure(export_locations,
version='2.14')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_export_location(self):
export_locations = self.admin_client.list_share_export_locations(
self.share['id'])
@@ -129,14 +129,14 @@
self.share['id'], export_location['id'])
self._verify_export_location_structure(el, format='detail')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_export_locations_by_member(self):
export_locations = self.member_client.list_share_export_locations(
self.share['id'])
self._verify_export_location_structure(export_locations, role='member')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_export_location_by_member(self):
export_locations = self.admin_client.list_share_export_locations(
self.share['id'])
@@ -149,7 +149,7 @@
self._verify_export_location_structure(el, role='member',
format='detail')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.13')
def test_list_share_instance_export_locations(self):
for share_instance in self.share_instances:
@@ -159,7 +159,7 @@
self._verify_export_location_structure(export_locations,
version='2.13')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.14')
def test_list_share_instance_export_locations_with_preferred_flag(self):
for share_instance in self.share_instances:
@@ -169,7 +169,7 @@
self._verify_export_location_structure(export_locations,
version='2.14')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_instance_export_location(self):
for share_instance in self.share_instances:
export_locations = (
@@ -180,7 +180,7 @@
share_instance['id'], el['id'])
self._verify_export_location_structure(el, format='detail')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_share_contains_all_export_locations_of_all_share_instances(self):
share_export_locations = self.admin_client.list_share_export_locations(
self.share['id'])
diff --git a/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py b/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
index 93ff5f0..7c83a24 100644
--- a/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
@@ -36,15 +36,7 @@
cls.share_instances = cls.shares_v2_client.get_instances_of_share(
cls.share['id'])
- @test.attr(type=["gate", "negative"])
- def test_get_export_locations_by_inexistent_share(self):
- self.assertRaises(
- lib_exc.NotFound,
- self.admin_client.list_share_export_locations,
- "fake-inexistent-share-id",
- )
-
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_get_inexistent_share_export_location(self):
self.assertRaises(
lib_exc.NotFound,
@@ -53,15 +45,7 @@
"fake-inexistent-share-instance-id",
)
- @test.attr(type=["gate", "negative"])
- def test_get_export_locations_by_inexistent_share_instance(self):
- self.assertRaises(
- lib_exc.NotFound,
- self.admin_client.list_share_instance_export_locations,
- "fake-inexistent-share-instance-id",
- )
-
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_get_inexistent_share_instance_export_location(self):
for share_instance in self.share_instances:
self.assertRaises(
@@ -71,7 +55,7 @@
"fake-inexistent-share-instance-id",
)
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_instance_export_locations_by_member(self):
for share_instance in self.share_instances:
self.assertRaises(
@@ -80,7 +64,7 @@
"fake-inexistent-share-instance-id",
)
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_instance_export_location_by_member(self):
for share_instance in self.share_instances:
export_locations = (
@@ -92,3 +76,23 @@
self.member_client.get_share_instance_export_location,
share_instance['id'], el['id'],
)
+
+
+@base.skip_if_microversion_not_supported("2.9")
+class ExportLocationsAPIOnlyNegativeTest(base.BaseSharesAdminTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_export_locations_by_nonexistent_share(self):
+ self.assertRaises(
+ lib_exc.NotFound,
+ self.shares_v2_client.list_share_export_locations,
+ "fake-inexistent-share-id",
+ )
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_export_locations_by_nonexistent_share_instance(self):
+ self.assertRaises(
+ lib_exc.NotFound,
+ self.shares_v2_client.list_share_instance_export_locations,
+ "fake-inexistent-share-instance-id",
+ )
diff --git a/manila_tempest_tests/tests/api/admin/test_migration.py b/manila_tempest_tests/tests/api/admin/test_migration.py
index 96f657a..f808a44 100644
--- a/manila_tempest_tests/tests/api/admin/test_migration.py
+++ b/manila_tempest_tests/tests/api/admin/test_migration.py
@@ -39,7 +39,7 @@
if not CONF.share.run_migration_tests:
raise cls.skipException("Migration tests disabled. Skipping.")
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@base.skip_if_microversion_lt("2.5")
def test_migration_empty_v2_5(self):
@@ -52,7 +52,7 @@
self._validate_migration_successful(dest_pool, share, old_exports,
version='2.5')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_migration_completion_empty_v2_15(self):
diff --git a/manila_tempest_tests/tests/api/admin/test_migration_negative.py b/manila_tempest_tests/tests/api/admin/test_migration_negative.py
index b7d75c4..348e5fa 100644
--- a/manila_tempest_tests/tests/api/admin/test_migration_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_migration_negative.py
@@ -47,28 +47,28 @@
cls.dest_pool = next((x for x in pools
if x['name'] != cls.share['host']), None)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_migration_cancel_invalid(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.migration_cancel,
self.share['id'])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_migration_get_progress_invalid(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.migration_get_progress,
self.share['id'])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.15")
def test_migration_complete_invalid(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.migration_complete,
self.share['id'])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.5")
def test_migrate_share_with_snapshot_v2_5(self):
snap = self.create_snapshot_wait_for_active(self.share['id'])
@@ -78,14 +78,14 @@
self.shares_client.delete_snapshot(snap['id'])
self.shares_client.wait_for_resource_deletion(snapshot_id=snap["id"])
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.5")
def test_migrate_share_same_host_v2_5(self):
self.assertRaises(
lib_exc.BadRequest, self.shares_v2_client.migrate_share,
self.share['id'], self.share['host'], True, version='2.5')
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_lt("2.5")
def test_migrate_share_not_available_v2_5(self):
self.shares_client.reset_state(self.share['id'], 'error')
diff --git a/manila_tempest_tests/tests/api/admin/test_multi_backend.py b/manila_tempest_tests/tests/api/admin/test_multi_backend.py
index 59f56c8..57fb9fd 100644
--- a/manila_tempest_tests/tests/api/admin/test_multi_backend.py
+++ b/manila_tempest_tests/tests/api/admin/test_multi_backend.py
@@ -56,14 +56,14 @@
# Create shares using precreated share types
cls.shares = cls.create_shares(share_data_list)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_share_backend_name_reporting(self):
# Share's 'host' should be like "hostname@backend_name"
for share in self.shares:
get = self.shares_client.get_share(share['id'])
self.assertTrue(len(get["host"].split("@")) == 2)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_share_share_type(self):
# Share type should be the same as provided with share creation
for i in [0, 1]:
@@ -71,7 +71,7 @@
version="2.5")
self.assertEqual(self.sts[i]["name"], get["share_type"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_share_share_type_v_2_6(self):
# Share type should be the same as provided with share creation
for i in [0, 1]:
@@ -80,7 +80,7 @@
self.assertEqual(self.sts[i]["id"], get["share_type"])
self.assertEqual(self.sts[i]["name"], get["share_type_name"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_share_backend_name_distinction(self):
# Different share backends should have different host records
if CONF.share.backend_names[0] == CONF.share.backend_names[1]:
diff --git a/manila_tempest_tests/tests/api/admin/test_quotas.py b/manila_tempest_tests/tests/api/admin/test_quotas.py
index 3c99083..da79215 100644
--- a/manila_tempest_tests/tests/api/admin/test_quotas.py
+++ b/manila_tempest_tests/tests/api/admin/test_quotas.py
@@ -34,7 +34,7 @@
cls.user_id = cls.shares_v2_client.user_id
cls.tenant_id = cls.shares_v2_client.tenant_id
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_default_quotas(self):
quotas = self.shares_v2_client.default_quotas(self.tenant_id)
self.assertGreater(int(quotas["gigabytes"]), -2)
@@ -43,7 +43,7 @@
self.assertGreater(int(quotas["snapshots"]), -2)
self.assertGreater(int(quotas["share_networks"]), -2)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_show_quotas(self):
quotas = self.shares_v2_client.show_quotas(self.tenant_id)
self.assertGreater(int(quotas["gigabytes"]), -2)
@@ -52,7 +52,7 @@
self.assertGreater(int(quotas["snapshots"]), -2)
self.assertGreater(int(quotas["share_networks"]), -2)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_show_quotas_for_user(self):
quotas = self.shares_v2_client.show_quotas(
self.tenant_id, self.user_id)
@@ -83,7 +83,7 @@
self.tenant_id = self.client.tenant_id
self.user_id = self.client.user_id
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_tenant_quota_shares(self):
# get current quotas
quotas = self.client.show_quotas(self.tenant_id)
@@ -93,7 +93,7 @@
updated = self.client.update_quotas(self.tenant_id, shares=new_quota)
self.assertEqual(new_quota, int(updated["shares"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_user_quota_shares(self):
# get current quotas
quotas = self.client.show_quotas(self.tenant_id, self.user_id)
@@ -104,7 +104,7 @@
self.tenant_id, self.user_id, shares=new_quota)
self.assertEqual(new_quota, int(updated["shares"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_tenant_quota_snapshots(self):
# get current quotas
quotas = self.client.show_quotas(self.tenant_id)
@@ -115,7 +115,7 @@
self.tenant_id, snapshots=new_quota)
self.assertEqual(new_quota, int(updated["snapshots"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_user_quota_snapshots(self):
# get current quotas
quotas = self.client.show_quotas(self.tenant_id, self.user_id)
@@ -126,7 +126,7 @@
self.tenant_id, self.user_id, snapshots=new_quota)
self.assertEqual(new_quota, int(updated["snapshots"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_tenant_quota_gigabytes(self):
# get current quotas
custom = self.client.show_quotas(self.tenant_id)
@@ -139,7 +139,7 @@
self.tenant_id, gigabytes=gigabytes)
self.assertEqual(gigabytes, int(updated["gigabytes"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_tenant_quota_snapshot_gigabytes(self):
# get current quotas
custom = self.client.show_quotas(self.tenant_id)
@@ -154,7 +154,7 @@
self.assertEqual(snapshot_gigabytes,
int(updated["snapshot_gigabytes"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_user_quota_gigabytes(self):
# get current quotas
custom = self.client.show_quotas(self.tenant_id, self.user_id)
@@ -167,7 +167,7 @@
self.tenant_id, self.user_id, gigabytes=gigabytes)
self.assertEqual(gigabytes, int(updated["gigabytes"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_user_quota_snapshot_gigabytes(self):
# get current quotas
custom = self.client.show_quotas(self.tenant_id, self.user_id)
@@ -182,7 +182,7 @@
self.assertEqual(snapshot_gigabytes,
int(updated["snapshot_gigabytes"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_tenant_quota_share_networks(self):
# get current quotas
quotas = self.client.show_quotas(self.tenant_id)
@@ -193,7 +193,7 @@
self.tenant_id, share_networks=new_quota)
self.assertEqual(new_quota, int(updated["share_networks"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_user_quota_share_networks(self):
# get current quotas
quotas = self.client.show_quotas(
@@ -206,7 +206,7 @@
share_networks=new_quota)
self.assertEqual(new_quota, int(updated["share_networks"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_reset_tenant_quotas(self):
# get default_quotas
default = self.client.default_quotas(self.tenant_id)
@@ -247,7 +247,7 @@
self.assertEqual(int(default["share_networks"]),
int(reseted["share_networks"]))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_quota_for_shares(self):
self.client.update_quotas(self.tenant_id, shares=-1)
@@ -255,7 +255,7 @@
self.assertEqual(-1, quotas.get('shares'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_user_quota_for_shares(self):
self.client.update_quotas(
self.tenant_id, self.user_id, shares=-1)
@@ -264,7 +264,7 @@
self.assertEqual(-1, quotas.get('shares'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_quota_for_snapshots(self):
self.client.update_quotas(self.tenant_id, snapshots=-1)
@@ -272,7 +272,7 @@
self.assertEqual(-1, quotas.get('snapshots'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_user_quota_for_snapshots(self):
self.client.update_quotas(
self.tenant_id, self.user_id, snapshots=-1)
@@ -281,7 +281,7 @@
self.assertEqual(-1, quotas.get('snapshots'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_quota_for_gigabytes(self):
self.client.update_quotas(self.tenant_id, gigabytes=-1)
@@ -289,7 +289,7 @@
self.assertEqual(-1, quotas.get('gigabytes'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_quota_for_snapshot_gigabytes(self):
self.client.update_quotas(
self.tenant_id, snapshot_gigabytes=-1)
@@ -298,7 +298,7 @@
self.assertEqual(-1, quotas.get('snapshot_gigabytes'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_user_quota_for_gigabytes(self):
self.client.update_quotas(
self.tenant_id, self.user_id, gigabytes=-1)
@@ -307,7 +307,7 @@
self.assertEqual(-1, quotas.get('gigabytes'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_user_quota_for_snapshot_gigabytes(self):
self.client.update_quotas(
self.tenant_id, self.user_id, snapshot_gigabytes=-1)
@@ -316,7 +316,7 @@
self.assertEqual(-1, quotas.get('snapshot_gigabytes'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_quota_for_share_networks(self):
self.client.update_quotas(self.tenant_id, share_networks=-1)
@@ -324,7 +324,7 @@
self.assertEqual(-1, quotas.get('share_networks'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_unlimited_user_quota_for_share_networks(self):
self.client.update_quotas(
self.tenant_id, self.user_id, share_networks=-1)
diff --git a/manila_tempest_tests/tests/api/admin/test_quotas_negative.py b/manila_tempest_tests/tests/api/admin/test_quotas_negative.py
index d5452ed..8d623c1 100644
--- a/manila_tempest_tests/tests/api/admin/test_quotas_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_quotas_negative.py
@@ -38,18 +38,18 @@
cls.user_id = cls.shares_client.user_id
cls.tenant_id = cls.shares_client.tenant_id
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_quotas_with_empty_tenant_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.show_quotas, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_reset_quotas_with_empty_tenant_id(self):
client = self.get_client_with_isolated_creds()
self.assertRaises(lib_exc.NotFound,
client.reset_quotas, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_update_shares_quota_with_wrong_data(self):
# -1 is acceptable value as unlimited
client = self.get_client_with_isolated_creds()
@@ -58,7 +58,7 @@
client.tenant_id,
shares=-2)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_update_snapshots_quota_with_wrong_data(self):
# -1 is acceptable value as unlimited
client = self.get_client_with_isolated_creds()
@@ -67,7 +67,7 @@
client.tenant_id,
snapshots=-2)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_update_gigabytes_quota_with_wrong_data(self):
# -1 is acceptable value as unlimited
client = self.get_client_with_isolated_creds()
@@ -76,7 +76,7 @@
client.tenant_id,
gigabytes=-2)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_update_snapshot_gigabytes_quota_with_wrong_data(self):
# -1 is acceptable value as unlimited
client = self.get_client_with_isolated_creds()
@@ -85,7 +85,7 @@
client.tenant_id,
snapshot_gigabytes=-2)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_update_share_networks_quota_with_wrong_data(self):
# -1 is acceptable value as unlimited
client = self.get_client_with_isolated_creds()
@@ -94,7 +94,7 @@
client.tenant_id,
share_networks=-2)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_create_share_with_size_bigger_than_quota(self):
quotas = self.shares_client.show_quotas(
self.shares_client.tenant_id)
@@ -105,7 +105,7 @@
self.create_share,
size=overquota)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_user_quota_shares_bigger_than_tenant_quota(self):
client = self.get_client_with_isolated_creds()
@@ -120,7 +120,7 @@
client.user_id,
shares=bigger_value)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_user_quota_snaps_bigger_than_tenant_quota(self):
client = self.get_client_with_isolated_creds()
@@ -135,7 +135,7 @@
client.user_id,
snapshots=bigger_value)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_user_quota_gigabytes_bigger_than_tenant_quota(self):
client = self.get_client_with_isolated_creds()
@@ -150,7 +150,7 @@
client.user_id,
gigabytes=bigger_value)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_user_quota_snap_gigabytes_bigger_than_tenant_quota(self):
client = self.get_client_with_isolated_creds()
@@ -165,7 +165,7 @@
client.user_id,
snapshot_gigabytes=bigger_value)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_user_quota_share_networks_bigger_than_tenant_quota(self):
client = self.get_client_with_isolated_creds()
diff --git a/manila_tempest_tests/tests/api/admin/test_replication.py b/manila_tempest_tests/tests/api/admin/test_replication.py
index 605656c..8e7ddb8 100644
--- a/manila_tempest_tests/tests/api/admin/test_replication.py
+++ b/manila_tempest_tests/tests/api/admin/test_replication.py
@@ -67,7 +67,7 @@
return [replica['id'] for replica in replica_list
if replica['replica_state'] == r_state]
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_promote_out_of_sync_share_replica(self):
"""Test promote 'out_of_sync' share replica to active state."""
if (self.replication_type
@@ -113,7 +113,7 @@
replica_list, constants.REPLICATION_STATE_ACTIVE)
self.assertEqual(1, len(new_active_replicas))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_force_delete_share_replica(self):
"""Test force deleting a replica that is in 'error_deleting' status."""
replica = self.create_share_replica(self.share['id'],
@@ -127,7 +127,7 @@
self.shares_v2_client.wait_for_resource_deletion(
replica_id=replica['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_reset_share_replica_status(self):
"""Test resetting a replica's 'status' attribute."""
replica = self.create_share_replica(self.share['id'],
@@ -138,7 +138,7 @@
self.shares_v2_client.wait_for_share_replica_status(
replica['id'], constants.STATUS_ERROR)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_reset_share_replica_state(self):
"""Test resetting a replica's 'replica_state' attribute."""
replica = self.create_share_replica(self.share['id'],
@@ -149,7 +149,7 @@
self.shares_v2_client.wait_for_share_replica_status(
replica['id'], constants.STATUS_ERROR, status_attr='replica_state')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_resync_share_replica(self):
"""Test resyncing a replica."""
replica = self.create_share_replica(self.share['id'],
diff --git a/manila_tempest_tests/tests/api/admin/test_replication_actions.py b/manila_tempest_tests/tests/api/admin/test_replication_actions.py
index 6ca2f0c..0df830e 100644
--- a/manila_tempest_tests/tests/api/admin/test_replication_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_replication_actions.py
@@ -64,7 +64,7 @@
cls.replica = cls.shares_v2_client.list_share_replicas(
share_id=cls.share['id'])[0]
- @test.attr(type=["gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_extend_tests,
'Extend share tests are disabled.')
def test_extend_replicated_share(self):
@@ -76,7 +76,7 @@
share = self.shares_v2_client.get_share(self.share["id"])
self.assertEqual(new_size, int(share["size"]))
- @test.attr(type=["gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_shrink_tests,
'Shrink share tests are disabled.')
def test_shrink_replicated_share(self):
@@ -87,7 +87,7 @@
shrink_share = self.shares_v2_client.get_share(self.share["id"])
self.assertEqual(new_size, int(shrink_share["size"]))
- @test.attr(type=["gate", "positive"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_tests,
'Manage/Unmanage Tests are disabled.')
def test_manage_share_for_replication_type(self):
@@ -121,7 +121,7 @@
self.create_share_replica(managed_share['id'], self.replica_zone,
cleanup=True)
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_tests,
'Manage/Unmanage Tests are disabled.')
def test_unmanage_replicated_share_with_replica(self):
@@ -134,7 +134,7 @@
self.shares_v2_client.unmanage_share,
share_id=self.share['id'])
- @test.attr(type=["gate", "positive"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_tests,
'Manage/Unmanage Tests are disabled.')
def test_unmanage_replicated_share_with_no_replica(self):
@@ -145,7 +145,7 @@
self.shares_v2_client.unmanage_share(share['id'])
self.shares_v2_client.wait_for_resource_deletion(share_id=share['id'])
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_snapshot_tests,
'Manage/Unmanage Snapshot Tests are disabled.')
def test_manage_replicated_share_snapshot(self):
@@ -160,7 +160,7 @@
provider_location="127.0.0.1:/fake_provider_location/"
"manila_share_9dc61f49_fbc8_48d7_9337_2f9593d9")
- @test.attr(type=["gate", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_snapshot_tests,
'Manage/Unmanage Snapshot Tests are disabled.')
def test_unmanage_replicated_share_snapshot(self):
@@ -174,7 +174,7 @@
self.shares_v2_client.unmanage_snapshot,
snapshot_id=snapshot['id'])
- @test.attr(type=["gate", "positive"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_manage_unmanage_snapshot_tests,
'Manage/Unmanage Snapshot Tests are disabled.')
def test_unmanage_replicated_share_snapshot_with_no_replica(self):
diff --git a/manila_tempest_tests/tests/api/admin/test_scheduler_stats.py b/manila_tempest_tests/tests/api/admin/test_scheduler_stats.py
index d1ef6ef..2fa6be9 100644
--- a/manila_tempest_tests/tests/api/admin/test_scheduler_stats.py
+++ b/manila_tempest_tests/tests/api/admin/test_scheduler_stats.py
@@ -23,7 +23,7 @@
class SchedulerStatsAdminTest(base.BaseSharesAdminTest):
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_pool_list(self):
# List pools
@@ -36,7 +36,7 @@
actual_keys = set(pool.keys())
self.assertTrue(actual_keys.issuperset(required_keys))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_pool_list_with_filters(self):
# List pools
@@ -65,7 +65,7 @@
for k, v in search_opts.items():
self.assertEqual(v[1:-1], filtered_pool_list[0][k])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_pool_list_with_filters_negative(self):
# Build search opts for a non-existent pool
@@ -81,7 +81,7 @@
# Ensure we got no pools
self.assertEmpty(pool_list)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_pool_list_detail(self):
# List pools
@@ -94,7 +94,7 @@
actual_keys = set(pool.keys())
self.assertTrue(actual_keys.issuperset(required_keys))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_pool_list_detail_with_filters(self):
# List pools
@@ -123,7 +123,7 @@
for k, v in search_opts.items():
self.assertEqual(v[1:-1], filtered_pool_list[0][k])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_pool_list_detail_with_filters_negative(self):
# Build search opts for a non-existent pool
diff --git a/manila_tempest_tests/tests/api/admin/test_security_services.py b/manila_tempest_tests/tests/api/admin/test_security_services.py
index 562aa3d..79169ff 100644
--- a/manila_tempest_tests/tests/api/admin/test_security_services.py
+++ b/manila_tempest_tests/tests/api/admin/test_security_services.py
@@ -46,7 +46,7 @@
'kerberos',
**ss_kerberos_data)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_security_services_all_tenants(self):
listed = self.shares_client.list_security_services(
params={'all_tenants': 1})
@@ -57,7 +57,7 @@
keys = ["name", "id", "status", "type", ]
[self.assertIn(key, s_s.keys()) for s_s in listed for key in keys]
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_security_services_invalid_filters(self):
listed = self.shares_client.list_security_services(
params={'fake_opt': 'some_value'})
diff --git a/manila_tempest_tests/tests/api/admin/test_services.py b/manila_tempest_tests/tests/api/admin/test_services.py
index 10df866..f2d4175 100644
--- a/manila_tempest_tests/tests/api/admin/test_services.py
+++ b/manila_tempest_tests/tests/api/admin/test_services.py
@@ -26,7 +26,7 @@
super(ServicesAdminTest, self).setUp()
self.services = self.shares_client.list_services()
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_list_services(self, client_name):
services = getattr(self, client_name).list_services()
@@ -35,7 +35,7 @@
for service in services:
self.assertIsNotNone(service['id'])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_host_name(self, client_name):
host = self.services[0]["host"]
@@ -45,7 +45,7 @@
for service in services:
self.assertEqual(host, service["host"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_binary_name(self, client_name):
binary = self.services[0]["binary"]
@@ -55,7 +55,7 @@
for service in services:
self.assertEqual(binary, service["binary"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_availability_zone(self, client_name):
zone = self.services[0]["zone"]
@@ -65,7 +65,7 @@
for service in services:
self.assertEqual(zone, service["zone"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_status(self, client_name):
status = self.services[0]["status"]
@@ -75,7 +75,7 @@
for service in services:
self.assertEqual(status, service["status"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_state(self, client_name):
state = self.services[0]["state"]
@@ -85,7 +85,7 @@
for service in services:
self.assertEqual(state, service["state"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_get_services_by_all_filters(self, client_name):
params = {
diff --git a/manila_tempest_tests/tests/api/admin/test_services_negative.py b/manila_tempest_tests/tests/api/admin/test_services_negative.py
index b32ee5a..0ffa30d 100644
--- a/manila_tempest_tests/tests/api/admin/test_services_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_services_negative.py
@@ -30,12 +30,12 @@
user_clients = clients.Manager()
cls.user_shares_client = user_clients.shares_client
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_services_with_non_admin_user(self):
self.assertRaises(lib_exc.Forbidden,
self.user_shares_client.list_services)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_params(self):
# All services are expected if send the request with invalid parameter
services = self.shares_client.list_services()
@@ -55,37 +55,37 @@
key=lambda service: service['id']),
msg)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_host(self):
params = {'host': 'fake_host'}
services_fake = self.shares_client.list_services(params)
self.assertEqual(0, len(services_fake))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_binary(self):
params = {'binary': 'fake_binary'}
services_fake = self.shares_client.list_services(params)
self.assertEqual(0, len(services_fake))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_zone(self):
params = {'zone': 'fake_zone'}
services_fake = self.shares_client.list_services(params)
self.assertEqual(0, len(services_fake))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_status(self):
params = {'status': 'fake_status'}
services_fake = self.shares_client.list_services(params)
self.assertEqual(0, len(services_fake))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_service_by_invalid_state(self):
params = {'state': 'fake_state'}
services_fake = self.shares_client.list_services(params)
self.assertEqual(0, len(services_fake))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
@ddt.data(
('os-services', '2.7'),
('services', '2.6'),
diff --git a/manila_tempest_tests/tests/api/admin/test_share_instances.py b/manila_tempest_tests/tests/api/admin/test_share_instances.py
index 248d145..3c2712c 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_instances.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_instances.py
@@ -29,7 +29,7 @@
super(ShareInstancesTest, cls).resource_setup()
cls.share = cls.create_share()
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_instances_of_share_v2_3(self):
"""Test that we get only the 1 share instance back for the share."""
share_instances = self.shares_v2_client.get_instances_of_share(
@@ -47,7 +47,7 @@
self.share['id'],
si['share_id']))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_instances_v2_3(self):
"""Test that we get at least the share instance back for the share."""
share_instances = self.shares_v2_client.get_instances_of_share(
@@ -83,14 +83,14 @@
'expected %s, got %s.' % (
si['id'], expected_keys, actual_keys))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_instance_v2_3(self):
self._get_share_instance('2.3')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_instance_v2_9(self):
self._get_share_instance('2.9')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_instance_v2_10(self):
self._get_share_instance('2.10')
diff --git a/manila_tempest_tests/tests/api/admin/test_share_manage.py b/manila_tempest_tests/tests/api/admin/test_share_manage.py
index 31269a7..ee028e9 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_manage.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_manage.py
@@ -160,22 +160,22 @@
self.shares_v2_client.get_share,
managed_share['id'])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_not_supported("2.5")
def test_manage_with_os_share_manage_url(self):
self._test_manage(share=self.shares[2], version="2.5")
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_not_supported("2.8")
def test_manage_with_is_public_True(self):
self._test_manage(share=self.shares[3], is_public=True, version="2.8")
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@base.skip_if_microversion_not_supported("2.16")
def test_manage_show_user_id(self):
self._test_manage(share=self.shares[4], version="2.16")
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_manage(self):
# After 'unmanage' operation, share instance should be deleted.
# Assert not related to 'manage' test, but placed here for
@@ -186,7 +186,7 @@
self._test_manage(share=self.shares[0])
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_manage_invalid(self):
# Try to manage share with invalid parameters, it should not succeed
# because the scheduler will reject it. If it succeeds, then this test
diff --git a/manila_tempest_tests/tests/api/admin/test_share_networks.py b/manila_tempest_tests/tests/api/admin/test_share_networks.py
index cc4dad4..b3df760 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_networks.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_networks.py
@@ -76,7 +76,7 @@
cls.sn_with_kerberos_ss["id"],
cls.ss_kerberos["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks_all_tenants(self):
listed = self.shares_client.list_share_networks_with_detail(
{'all_tenants': 1})
@@ -85,7 +85,7 @@
self.assertTrue(any(self.sn_with_kerberos_ss['id'] == sn['id']
for sn in listed))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks_filter_by_project_id(self):
listed = self.shares_client.list_share_networks_with_detail(
{'project_id': self.sn_with_kerberos_ss['project_id']})
diff --git a/manila_tempest_tests/tests/api/admin/test_share_servers.py b/manila_tempest_tests/tests/api/admin/test_share_servers.py
index df13ce9..9509cb1 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_servers.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_servers.py
@@ -50,7 +50,7 @@
cls.date_re = re.compile("^([0-9]{4}-[0-9]{2}-[0-9]{2}[A-Z]{1}"
"[0-9]{2}:[0-9]{2}:[0-9]{2}).*$")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_without_filters(self):
servers = self.shares_client.list_share_servers()
self.assertTrue(len(servers) > 0)
@@ -81,7 +81,7 @@
# Server we used is present.
any(s["share_network_name"] in self.sn_name_and_id for s in servers)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_with_host_filter(self):
# Get list of share servers and remember 'host' name
servers = self.shares_client.list_share_servers()
@@ -107,7 +107,7 @@
for server in servers:
self.assertEqual(server["host"], host)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_with_status_filter(self):
# Get list of share servers
servers = self.shares_client.list_share_servers()
@@ -133,7 +133,7 @@
for server in servers:
self.assertEqual(server["status"], status)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_with_project_id_filter(self):
search_opts = {"project_id": self.share_network["project_id"]}
servers = self.shares_client.list_share_servers(search_opts)
@@ -143,7 +143,7 @@
self.assertEqual(server["project_id"],
self.share_network["project_id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_with_share_network_name_filter(self):
search_opts = {"share_network": self.share_network["name"]}
servers = self.shares_client.list_share_servers(search_opts)
@@ -153,7 +153,7 @@
self.assertEqual(server["share_network_name"],
self.share_network["name"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_share_servers_with_share_network_id_filter(self):
search_opts = {"share_network": self.share_network["id"]}
servers = self.shares_client.list_share_servers(search_opts)
@@ -163,7 +163,7 @@
self.assertIn(server["share_network_name"],
self.sn_name_and_id)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_show_share_server(self):
servers = self.shares_client.list_share_servers()
server = self.shares_client.show_share_server(servers[0]["id"])
@@ -198,7 +198,7 @@
# backend_details should be a dict
self.assertIsInstance(server["backend_details"], dict)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_show_share_server_details(self):
servers = self.shares_client.list_share_servers()
details = self.shares_client.show_share_server_details(
@@ -208,7 +208,6 @@
self.assertIsInstance(k, six.string_types)
self.assertIsInstance(v, six.string_types)
- @test.attr(type=["gate", "smoke", ])
def _delete_share_server(self, delete_share_network):
# Get network and subnet from existing share_network and reuse it
# to be able to delete share_server after test ends.
@@ -266,10 +265,10 @@
self.shares_client.wait_for_resource_deletion(
sn_id=new_sn["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_delete_share_server(self):
self._delete_share_server(False)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_delete_share_server_by_deletion_of_share_network(self):
self._delete_share_server(True)
diff --git a/manila_tempest_tests/tests/api/admin/test_share_servers_negative.py b/manila_tempest_tests/tests/api/admin/test_share_servers_negative.py
index e4712aa..cd32b10 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_servers_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_servers_negative.py
@@ -28,66 +28,66 @@
super(ShareServersNegativeAdminTest, cls).resource_setup()
cls.member_shares_client = clients.Manager().shares_client
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_share_servers_with_member(self):
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.list_share_servers)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_show_share_server_with_member(self):
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.show_share_server,
'fake_id')
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_show_share_server_details_with_member(self):
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.show_share_server_details,
'fake_id')
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_show_share_server_with_inexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.show_share_server,
'fake_id')
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_show_share_server_details_with_inexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.show_share_server_details,
'fake_id')
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_wrong_filter_key(self):
search_opts = {'fake_filter_key': 'ACTIVE'}
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_wrong_filter_value(self):
search_opts = {'host': 123}
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_fake_status(self):
search_opts = {"status": data_utils.rand_name("fake_status")}
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_fake_host(self):
search_opts = {"host": data_utils.rand_name("fake_host")}
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_fake_project(self):
search_opts = {"project_id": data_utils.rand_name("fake_project_id")}
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_share_servers_with_fake_share_network(self):
search_opts = {
"share_network": data_utils.rand_name("fake_share_network"),
@@ -95,13 +95,13 @@
servers = self.shares_client.list_share_servers(search_opts)
self.assertEqual(0, len(servers))
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_delete_share_server_with_nonexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_server,
"fake_nonexistent_share_server_id")
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_delete_share_server_with_member(self):
self.assertRaises(lib_exc.Forbidden,
self.member_shares_client.delete_share_server,
diff --git a/manila_tempest_tests/tests/api/admin/test_share_types.py b/manila_tempest_tests/tests/api/admin/test_share_types.py
index c1a17cd..5dc462d 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_types.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_types.py
@@ -28,7 +28,7 @@
@ddt.ddt
class ShareTypesAdminTest(base.BaseSharesAdminTest):
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_share_type_create_delete(self):
name = data_utils.rand_name("tempest-manila")
extra_specs = self.add_required_extra_specs_to_dict()
@@ -58,7 +58,7 @@
self.assertIn(old_key_name, share_type)
self.assertNotIn(new_key_name, share_type)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('2.0', '2.6', '2.7')
def test_share_type_create_get(self, version):
self.skip_if_microversion_not_supported(version)
@@ -83,7 +83,7 @@
# Check that backwards compatibility didn't break
self.assertDictMatch(get["volume_type"], get["share_type"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('2.0', '2.6', '2.7')
def test_share_type_create_list(self, version):
self.skip_if_microversion_not_supported(version)
@@ -111,7 +111,7 @@
for i in range(len(sts)):
self.assertDictMatch(sts[i], vts[i])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_with_share_type(self):
# Data
@@ -141,6 +141,7 @@
self.assertEqual(st_create["share_type"]["id"], get["share_type"])
self.assertEqual(shr_type_name, get["share_type_name"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_private_share_type_access(self):
name = data_utils.rand_name("tempest-manila")
extra_specs = self.add_required_extra_specs_to_dict({"key": "value", })
diff --git a/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs.py b/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs.py
index c387765..7ee3f7b 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs.py
@@ -40,14 +40,14 @@
cls.shares_client.create_share_type_extra_specs(
cls.st_id, cls.custom_extra_specs)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_get_one_share_type_extra_spec(self):
es_get_one = self.shares_client.get_share_type_extra_spec(
self.st_id, "key1")
self.assertEqual({"key1": self.custom_extra_specs["key1"]}, es_get_one)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_get_all_share_type_extra_specs(self):
es_get_all = self.shares_client.get_share_type_extra_specs(self.st_id)
@@ -72,7 +72,7 @@
self.shares_client.create_share_type_extra_specs(
self.st_id, self.custom_extra_specs)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_one_share_type_extra_spec(self):
self.custom_extra_specs["key1"] = "fake_value1_updated"
@@ -86,7 +86,7 @@
expected_extra_specs.update(self.required_extra_specs)
self.assertEqual(self.custom_extra_specs, get)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_all_share_type_extra_specs(self):
self.custom_extra_specs["key2"] = "value2_updated"
@@ -100,7 +100,7 @@
expected_extra_specs.update(self.required_extra_specs)
self.assertEqual(self.custom_extra_specs, get)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_delete_one_share_type_extra_spec(self):
# Delete one extra spec for share type
self.shares_client.delete_share_type_extra_spec(self.st_id, "key1")
diff --git a/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs_negative.py b/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs_negative.py
index 771f240..15184cc 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_types_extra_specs_negative.py
@@ -33,7 +33,7 @@
super(ExtraSpecsAdminNegativeTest, cls).resource_setup()
cls.member_shares_client = clients.Manager().shares_client
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_extra_specs_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -42,7 +42,7 @@
st["share_type"]["id"],
self.add_required_extra_specs_to_dict({"key": "new_value"}))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_extra_specs_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -50,7 +50,7 @@
self.member_shares_client.get_share_type_extra_specs,
st["share_type"]["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_spec_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -58,7 +58,7 @@
self.member_shares_client.get_share_type_extra_spec,
st["share_type"]["id"], "key")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_specs_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -66,7 +66,7 @@
self.member_shares_client.get_share_type_extra_specs,
st["share_type"]["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_read_extra_specs_on_share_type_with_user(self):
st = self._create_share_type()
share_type = self.member_shares_client.get_share_type(
@@ -78,7 +78,7 @@
'Incorrect extra specs visible to non-admin user; '
'expected %s, got %s' % (expected_keys, actual_keys))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_extra_spec_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -86,7 +86,7 @@
self.member_shares_client.update_share_type_extra_spec,
st["share_type"]["id"], "key", "new_value")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_extra_specs_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -94,7 +94,7 @@
self.member_shares_client.update_share_type_extra_specs,
st["share_type"]["id"], {"key": "new_value"})
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_extra_specs_with_user(self):
st = self._create_share_type()
self.assertRaises(
@@ -102,7 +102,7 @@
self.member_shares_client.delete_share_type_extra_spec,
st["share_type"]["id"], "key")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_too_long_key(self):
too_big_key = "k" * 256
st = self._create_share_type()
@@ -112,7 +112,7 @@
st["share_type"]["id"],
self.add_required_extra_specs_to_dict({too_big_key: "value"}))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_too_long_value_with_creation(self):
too_big_value = "v" * 256
st = self._create_share_type()
@@ -122,7 +122,7 @@
st["share_type"]["id"],
self.add_required_extra_specs_to_dict({"key": too_big_value}))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_too_long_value_with_update(self):
too_big_value = "v" * 256
st = self._create_share_type()
@@ -135,7 +135,7 @@
st["share_type"]["id"],
self.add_required_extra_specs_to_dict({"key": too_big_value}))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_set_too_long_value_with_update_of_one_key(self):
too_big_value = "v" * 256
st = self._create_share_type()
@@ -146,121 +146,121 @@
self.shares_client.update_share_type_extra_spec,
st["share_type"]["id"], "key", too_big_value)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_es_with_empty_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_specs, "")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_es_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_specs,
data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_es_with_empty_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.create_share_type_extra_specs,
"", {"key1": "value1", })
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_es_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.create_share_type_extra_specs,
data_utils.rand_name("fake"), {"key1": "value1", })
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_es_with_empty_specs(self):
st = self._create_share_type()
self.assertRaises(lib_exc.BadRequest,
self.shares_client.create_share_type_extra_specs,
st["share_type"]["id"], "")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_es_with_invalid_specs(self):
st = self._create_share_type()
self.assertRaises(lib_exc.BadRequest,
self.shares_client.create_share_type_extra_specs,
st["share_type"]["id"], {"": "value_with_empty_key"})
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_spec_with_empty_key(self):
st = self._create_share_type()
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_spec,
st["share_type"]["id"], "")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_spec_with_invalid_key(self):
st = self._create_share_type()
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_spec,
st["share_type"]["id"], data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_specs_with_empty_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_specs,
"")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_extra_specs_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type_extra_specs,
data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_es_key_with_empty_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_type_extra_spec,
"", "key", )
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_es_key_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_type_extra_spec,
data_utils.rand_name("fake"), "key", )
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_with_invalid_key(self):
st = self._create_share_type()
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_type_extra_spec,
st["share_type"]["id"], data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_spec_with_empty_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_type_extra_spec,
"", "key", "new_value")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_spec_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_type_extra_spec,
data_utils.rand_name("fake"), "key", "new_value")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_spec_with_empty_key(self):
st = self._create_share_type()
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_type_extra_spec,
st["share_type"]["id"], "", "new_value")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_with_invalid_shr_type_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_type_extra_specs,
data_utils.rand_name("fake"), {"key": "new_value"})
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_with_invalid_specs(self):
st = self._create_share_type()
self.assertRaises(lib_exc.BadRequest,
self.shares_client.update_share_type_extra_specs,
st["share_type"]["id"], {"": "new_value"})
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_spec_driver_handles_share_servers(self):
st = self._create_share_type()
@@ -270,7 +270,7 @@
st["share_type"]["id"],
"driver_handles_share_servers")
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_spec_snapshot_support(self):
st = self._create_share_type()
diff --git a/manila_tempest_tests/tests/api/admin/test_share_types_negative.py b/manila_tempest_tests/tests/api/admin/test_share_types_negative.py
index 2f41e76..77c2536 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_types_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_types_negative.py
@@ -33,35 +33,35 @@
super(ShareTypesAdminNegativeTest, cls).resource_setup()
cls.member_shares_client = clients.Manager().shares_client
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_create_share_with_nonexistent_share_type(self):
self.assertRaises(lib_exc.NotFound,
self.create_share,
share_type_id=data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_create_share_type_with_empty_name(self):
self.assertRaises(lib_exc.BadRequest, self.create_share_type, '')
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_create_share_type_with_too_big_name(self):
self.assertRaises(lib_exc.BadRequest,
self.create_share_type,
"x" * 256)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_share_type_by_nonexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_type,
data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_share_type_by_nonexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_type,
data_utils.rand_name("fake"))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_duplicate_of_share_type(self):
st = self._create_share_type()
self.assertRaises(lib_exc.Conflict,
@@ -69,7 +69,7 @@
st["share_type"]["name"],
extra_specs=self.add_required_extra_specs_to_dict())
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_share_type_allowed_for_public(self):
st = self._create_share_type()
self.assertRaises(lib_exc.Conflict,
@@ -77,7 +77,7 @@
st["share_type"]["id"],
self.shares_client.tenant_id)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_remove_share_type_allowed_for_public(self):
st = self._create_share_type()
self.assertRaises(lib_exc.Conflict,
@@ -85,14 +85,14 @@
st["share_type"]["id"],
self.shares_client.tenant_id)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_share_type_by_nonexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.add_access_to_share_type,
data_utils.rand_name("fake"),
self.shares_client.tenant_id)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_remove_share_type_by_nonexistent_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.remove_access_from_share_type,
diff --git a/manila_tempest_tests/tests/api/admin/test_shares_actions.py b/manila_tempest_tests/tests/api/admin/test_shares_actions.py
index 696eecb..c8966a2 100644
--- a/manila_tempest_tests/tests/api/admin/test_shares_actions.py
+++ b/manila_tempest_tests/tests/api/admin/test_shares_actions.py
@@ -82,7 +82,7 @@
snapshot_id=cls.snap['id'],
))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share(self):
# get share
@@ -109,7 +109,7 @@
share["size"])
self.assertEqual(self.share_size, int(share["size"]), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares(self):
# list shares
@@ -125,7 +125,7 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail(self):
# list shares
@@ -145,7 +145,7 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_metadata(self):
filters = {'metadata': self.metadata}
@@ -160,7 +160,7 @@
if CONF.share.run_snapshot_tests:
self.assertFalse(self.shares[1]['id'] in [s['id'] for s in shares])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_extra_specs(self):
filters = {
"extra_specs": {
@@ -193,7 +193,7 @@
extra_specs = self.shares_client.get_share_type_extra_specs(st_id)
self.assertDictContainsSubset(filters["extra_specs"], extra_specs)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_share_type_id(self):
filters = {'share_type_id': self.st['share_type']['id']}
@@ -223,7 +223,7 @@
for share in self.shares:
self.assertTrue(share['id'] in share_ids)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_host(self):
base_share = self.shares_client.get_share(self.shares[0]['id'])
filters = {'host': base_share['host']}
@@ -236,7 +236,7 @@
for share in shares:
self.assertEqual(filters['host'], share['host'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_list_shares_with_detail_filter_by_share_network_id(self):
@@ -252,7 +252,7 @@
self.assertEqual(
filters['share_network_id'], share['share_network_id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_shares_with_detail_filter_by_snapshot_id(self):
@@ -267,7 +267,7 @@
self.assertEqual(filters['snapshot_id'], share['snapshot_id'])
self.assertFalse(self.shares[0]['id'] in [s['id'] for s in shares])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_with_asc_sorting(self):
filters = {'sort_key': 'created_at', 'sort_dir': 'asc'}
@@ -279,21 +279,21 @@
sorted_list = [share['created_at'] for share in shares]
self.assertEqual(sorted(sorted_list), sorted_list)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_existed_name(self):
# list shares by name, at least one share is expected
params = {"name": self.share_name}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(self.share_name, shares[0]["name"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_fake_name(self):
# list shares by fake name, no shares are expected
params = {"name": data_utils.rand_name("fake-nonexistent-name")}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(0, len(shares))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_active_status(self):
# list shares by active status, at least one share is expected
params = {"status": "available"}
@@ -302,14 +302,14 @@
for share in shares:
self.assertEqual(params["status"], share["status"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_fake_status(self):
# list shares by fake status, no shares are expected
params = {"status": 'fake'}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(0, len(shares))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_get_snapshot(self):
@@ -337,7 +337,7 @@
"actual share_id: '%s'" % (self.shares[0]["id"], get["share_id"])
self.assertEqual(self.shares[0]["id"], get["share_id"], msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots(self):
@@ -354,7 +354,7 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots_with_detail(self):
diff --git a/manila_tempest_tests/tests/api/admin/test_snapshot_manage.py b/manila_tempest_tests/tests/api/admin/test_snapshot_manage.py
index 26ff1af..3eed886 100644
--- a/manila_tempest_tests/tests/api/admin/test_snapshot_manage.py
+++ b/manila_tempest_tests/tests/api/admin/test_snapshot_manage.py
@@ -125,7 +125,7 @@
self.shares_v2_client.get_snapshot,
get_snapshot['id'])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_manage(self):
# Manage snapshot
self._test_manage(snapshot=self.snapshot)
diff --git a/manila_tempest_tests/tests/api/admin/test_snapshot_manage_negative.py b/manila_tempest_tests/tests/api/admin/test_snapshot_manage_negative.py
index 2aba07c..8dace66 100644
--- a/manila_tempest_tests/tests/api/admin/test_snapshot_manage_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_snapshot_manage_negative.py
@@ -62,7 +62,7 @@
share_protocol=cls.protocol
)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_manage_not_found(self):
# Manage snapshot fails
self.assertRaises(lib_exc.NotFound,
@@ -71,7 +71,7 @@
'fake-vol-snap-id',
driver_options={})
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_manage_already_exists(self):
# Manage already existing snapshot fails
diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py
index 6a75bee..ec64174 100644
--- a/manila_tempest_tests/tests/api/base.py
+++ b/manila_tempest_tests/tests/api/base.py
@@ -15,6 +15,7 @@
import copy
import inspect
+import re
import traceback
from oslo_concurrency import lockutils
@@ -35,6 +36,37 @@
CONF = config.CONF
LOG = log.getLogger(__name__)
+# Test tags related to test direction
+TAG_POSITIVE = "positive"
+TAG_NEGATIVE = "negative"
+
+# Test tags related to service involvement
+TAG_API = "api"
+TAG_BACKEND = "backend"
+TAG_API_WITH_BACKEND = "api_with_backend"
+
+TAGS_MAPPER = {
+ "p": TAG_POSITIVE,
+ "n": TAG_NEGATIVE,
+ "a": TAG_API,
+ "b": TAG_BACKEND,
+ "ab": TAG_API_WITH_BACKEND,
+}
+TAGS_PATTERN = re.compile(
+ r"(?=.*\[.*\b(%(p)s|%(n)s)\b.*\])(?=.*\[.*\b(%(a)s|%(b)s|%(ab)s)\b.*\])" %
+ TAGS_MAPPER)
+
+
+def verify_test_has_appropriate_tags(self):
+ if not TAGS_PATTERN.match(self.id()):
+ msg = (
+ "Required attributes either not set or set improperly. "
+ "Two test attributes are expected:\n"
+ " - one of '%(p)s' or '%(n)s' and \n"
+ " - one of '%(a)s', '%(b)s' or '%(ab)s'."
+ ) % TAGS_MAPPER
+ raise self.failureException(msg)
+
class handle_cleanup_exceptions(object):
"""Handle exceptions raised with cleanup operations.
@@ -219,6 +251,7 @@
super(BaseSharesTest, self).setUp()
self.addCleanup(self.clear_isolated_creds)
self.addCleanup(self.clear_resources)
+ verify_test_has_appropriate_tags(self)
@classmethod
def resource_cleanup(cls):
diff --git a/manila_tempest_tests/tests/api/test_availability_zones.py b/manila_tempest_tests/tests/api/test_availability_zones.py
index 8230157..b531439 100644
--- a/manila_tempest_tests/tests/api/test_availability_zones.py
+++ b/manila_tempest_tests/tests/api/test_availability_zones.py
@@ -28,14 +28,14 @@
for key in keys:
self.assertIn(key, az)
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_availability_zones_legacy_url_api_v1(self):
# NOTE(vponomaryov): remove this test with removal of availability zone
# extension url support.
azs = self.shares_client.list_availability_zones()
self._list_availability_zones_assertions(azs)
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@base.skip_if_microversion_not_supported("2.6")
def test_list_availability_zones_legacy_url_api_v2(self):
# NOTE(vponomaryov): remove this test with removal of availability zone
@@ -44,7 +44,7 @@
url='os-availability-zone', version='2.6')
self._list_availability_zones_assertions(azs)
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@base.skip_if_microversion_not_supported("2.7")
def test_list_availability_zones(self):
azs = self.shares_v2_client.list_availability_zones(version='2.7')
diff --git a/manila_tempest_tests/tests/api/test_availability_zones_negative.py b/manila_tempest_tests/tests/api/test_availability_zones_negative.py
index ffe4096..601a644 100644
--- a/manila_tempest_tests/tests/api/test_availability_zones_negative.py
+++ b/manila_tempest_tests/tests/api/test_availability_zones_negative.py
@@ -22,7 +22,7 @@
@base.skip_if_microversion_not_supported("2.7")
class AvailabilityZonesNegativeTest(base.BaseSharesTest):
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_availability_zones_api_not_found_with_legacy_url(self):
# NOTE(vponomaryov): remove this test with removal of availability zone
# extension url support.
@@ -33,7 +33,7 @@
version='2.7',
)
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_availability_zones_api_not_found(self):
self.assertRaises(
lib_exc.NotFound,
diff --git a/manila_tempest_tests/tests/api/test_consistency_group_actions.py b/manila_tempest_tests/tests/api/test_consistency_group_actions.py
index 6a80590..4ae8163 100644
--- a/manila_tempest_tests/tests/api/test_consistency_group_actions.py
+++ b/manila_tempest_tests/tests/api/test_consistency_group_actions.py
@@ -79,7 +79,7 @@
cls.cgsnapshot2 = cls.create_cgsnapshot_wait_for_active(
cls.cg2['id'], name=cls.cgsnap_name, description=cls.cgsnap_desc)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_consistency_group_v2_4(self):
# Get consistency group
@@ -105,7 +105,7 @@
self.assertEqual(self.cg_desc, str(consistency_group["description"]),
msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_v2_4(self):
# Get share
@@ -141,7 +141,7 @@
self.cg["id"], share["consistency_group_id"])
self.assertEqual(self.cg["id"], share["consistency_group_id"], msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_consistency_groups_v2_4(self):
# List consistency groups
@@ -160,7 +160,7 @@
cg_id)
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_consistency_groups_with_detail_v2_4(self):
# List consistency groups
@@ -179,7 +179,7 @@
cg_id)
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_filter_shares_by_consistency_group_id_v2_4(self):
shares = self.shares_v2_client.list_shares(
@@ -200,7 +200,7 @@
'Share %s expected in returned list, but got %s'
% (self.shares[0]['id'], share_ids))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_cgsnapshot_v2_4(self):
# Get consistency group
@@ -226,7 +226,7 @@
self.assertEqual(self.cg_desc, str(consistency_group["description"]),
msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_cgsnapshot_members_v2_4(self):
cgsnapshot_members = self.shares_v2_client.list_cgsnapshot_members(
@@ -251,7 +251,7 @@
# self.assertEqual(share['share_type'],
# member['share_type_id'])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_consistency_group_from_populated_cgsnapshot_v2_4(self):
cgsnapshot_members = self.shares_v2_client.list_cgsnapshot_members(
@@ -319,7 +319,7 @@
description=cls.cg_desc,
)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_update_consistency_group_v2_4(self):
# Get consistency_group
@@ -346,7 +346,7 @@
self.assertEqual(new_name, consistency_group["name"])
self.assertEqual(new_desc, consistency_group["description"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_create_update_read_consistency_group_with_unicode_v2_4(self):
value1 = u'ಠ_ಠ'
value2 = u'ಠ_ರೃ'
diff --git a/manila_tempest_tests/tests/api/test_consistency_groups.py b/manila_tempest_tests/tests/api/test_consistency_groups.py
index f611107..45a462d 100644
--- a/manila_tempest_tests/tests/api/test_consistency_groups.py
+++ b/manila_tempest_tests/tests/api/test_consistency_groups.py
@@ -32,7 +32,7 @@
class ConsistencyGroupsTest(base.BaseSharesTest):
"""Covers consistency group functionality."""
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_populate_delete_consistency_group_v2_4(self):
# Create a consistency group
consistency_group = self.create_consistency_group(
@@ -65,7 +65,7 @@
self.shares_client.get_share,
share['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_create_delete_empty_cgsnapshot_v2_4(self):
# Create base consistency group
consistency_group = self.create_consistency_group(
@@ -98,7 +98,7 @@
cgsnapshot['id'],
version='2.4')
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_create_consistency_group_from_empty_cgsnapshot(self):
# Create base consistency group
consistency_group = self.create_consistency_group(
diff --git a/manila_tempest_tests/tests/api/test_consistency_groups_negative.py b/manila_tempest_tests/tests/api/test_consistency_groups_negative.py
index 74d583c..bd7a63d 100644
--- a/manila_tempest_tests/tests/api/test_consistency_groups_negative.py
+++ b/manila_tempest_tests/tests/api/test_consistency_groups_negative.py
@@ -26,6 +26,86 @@
@testtools.skipUnless(CONF.share.run_consistency_group_tests,
'Consistency Group tests disabled.')
+class ConsistencyGroupsAPIOnlyNegativeTest(base.BaseSharesTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_delete_cg_without_passing_cg_id_v2_4(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.delete_consistency_group,
+ '',
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_delete_cg_with_wrong_id_v2_4(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.delete_consistency_group,
+ "wrong_consistency_group_id",
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_update_cg_with_wrong_id_v2_4(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.update_consistency_group,
+ 'wrong_consistency_group_id',
+ name='new_name',
+ description='new_description',
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_cg_without_passing_cg_id_v2_4(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.get_consistency_group,
+ '',
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_filter_shares_on_invalid_cg_id_v2_4(self):
+ shares = self.shares_v2_client.list_shares(
+ detailed=True,
+ params={'consistency_group_id': 'foobar'},
+ version='2.4',
+ )
+
+ self.assertEqual(0, len(shares),
+ 'Incorrect number of shares returned. Expected 0, '
+ 'got %s.' % len(shares))
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_cgsnapshot_with_invalid_cg_id_value_v2_4(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_cgsnapshot_wait_for_active,
+ 'foobar',
+ cleanup_in_class=False,
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_cg_with_invalid_share_type_id_value_v2_4(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_consistency_group,
+ share_type_ids=['foobar'],
+ cleanup_in_class=False,
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_cg_with_invalid_share_network_id_value_v2_4(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_consistency_group,
+ share_network_id='foobar',
+ cleanup_in_class=False,
+ version='2.4')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_cg_with_invalid_source_cgsnapshot_id_value_v2_4(
+ self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_consistency_group,
+ source_cgsnapshot_id='foobar',
+ cleanup_in_class=False,
+ version='2.4')
+
+
+@testtools.skipUnless(CONF.share.run_consistency_group_tests,
+ 'Consistency Group tests disabled.')
class ConsistencyGroupsNegativeTest(base.BaseSharesTest):
@classmethod
@@ -56,16 +136,7 @@
name=cls.cgsnap_name,
description=cls.cgsnap_desc)
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_cg_with_invalid_source_cgsnapshot_id_value_v2_4(
- self):
- self.assertRaises(lib_exc.BadRequest,
- self.create_consistency_group,
- source_cgsnapshot_id='foobar',
- cleanup_in_class=False,
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_nonexistent_source_cgsnapshot_id_value_v2_4(self):
self.assertRaises(lib_exc.BadRequest,
self.create_consistency_group,
@@ -73,15 +144,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_cg_with_invalid_share_network_id_value_v2_4(self):
- self.assertRaises(lib_exc.BadRequest,
- self.create_consistency_group,
- share_network_id='foobar',
- cleanup_in_class=False,
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_nonexistent_share_network_id_value_v2_4(self):
self.assertRaises(lib_exc.BadRequest,
self.create_consistency_group,
@@ -89,15 +152,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_cg_with_invalid_share_type_id_value_v2_4(self):
- self.assertRaises(lib_exc.BadRequest,
- self.create_consistency_group,
- share_type_ids=['foobar'],
- cleanup_in_class=False,
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cg_with_nonexistent_share_type_id_value_v2_4(self):
self.assertRaises(lib_exc.BadRequest,
self.create_consistency_group,
@@ -105,15 +160,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_cgsnapshot_with_invalid_cg_id_value_v2_4(self):
- self.assertRaises(lib_exc.BadRequest,
- self.create_cgsnapshot_wait_for_active,
- 'foobar',
- cleanup_in_class=False,
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_cgsnapshot_with_nonexistent_cg_id_value_v2_4(self):
self.assertRaises(lib_exc.BadRequest,
self.create_cgsnapshot_wait_for_active,
@@ -121,44 +168,7 @@
cleanup_in_class=False,
version='2.4')
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_get_cg_with_wrong_id_v2_4(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.get_consistency_group,
- "wrong_consistency_group_id",
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_get_cg_without_passing_cg_id_v2_4(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.get_consistency_group,
- '',
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_update_cg_with_wrong_id_v2_4(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.update_consistency_group,
- 'wrong_consistency_group_id',
- name='new_name',
- description='new_description',
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_delete_cg_with_wrong_id_v2_4(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.delete_consistency_group,
- "wrong_consistency_group_id",
- version='2.4')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_delete_cg_without_passing_cg_id_v2_4(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.delete_consistency_group,
- '',
- version='2.4')
-
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_cg_in_use_by_cgsnapshot_v2_4(self):
# Attempt delete of share type
self.assertRaises(lib_exc.Conflict,
@@ -166,7 +176,7 @@
self.consistency_group['id'],
version='2.4')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_share_in_use_by_cgsnapshot_v2_4(self):
# Attempt delete of share type
params = {'consistency_group_id': self.share['consistency_group_id']}
@@ -176,7 +186,7 @@
params=params,
version='2.4')
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_cg_containing_a_share_v2_4(self):
self.assertRaises(lib_exc.Conflict,
self.shares_v2_client.delete_consistency_group,
@@ -187,19 +197,7 @@
self.consistency_group['id'], version='2.4')
self.assertEqual('available', cg['status'])
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_filter_shares_on_invalid_cg_id_v2_4(self):
- shares = self.shares_v2_client.list_shares(
- detailed=True,
- params={'consistency_group_id': 'foobar'},
- version='2.4'
- )
-
- self.assertEqual(0, len(shares),
- 'Incorrect number of shares returned. Expected 0, '
- 'got %s.' % len(shares))
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_filter_shares_on_nonexistent_cg_id_v2_4(self):
shares = self.shares_v2_client.list_shares(
detailed=True,
@@ -211,7 +209,7 @@
'Incorrect number of shares returned. Expected 0, '
'got %s.' % len(shares))
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_filter_shares_on_empty_cg_id_v2_4(self):
consistency_group = self.create_consistency_group(
name='tempest_cg',
diff --git a/manila_tempest_tests/tests/api/test_extensions.py b/manila_tempest_tests/tests/api/test_extensions.py
index 1d71d11..b9a6c9e 100644
--- a/manila_tempest_tests/tests/api/test_extensions.py
+++ b/manila_tempest_tests/tests/api/test_extensions.py
@@ -20,7 +20,7 @@
class ExtensionsTest(base.BaseSharesTest):
- @test.attr(type=["smoke", "gate"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_extensions(self):
# get extensions
diff --git a/manila_tempest_tests/tests/api/test_limits.py b/manila_tempest_tests/tests/api/test_limits.py
index 5046b30..8348b26 100644
--- a/manila_tempest_tests/tests/api/test_limits.py
+++ b/manila_tempest_tests/tests/api/test_limits.py
@@ -20,7 +20,7 @@
class ShareLimitsTest(base.BaseSharesTest):
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_limits_keys(self):
# list limits
@@ -44,7 +44,7 @@
]
[self.assertIn(key, limits["absolute"].keys()) for key in abs_keys]
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_limits_values(self):
# list limits
diff --git a/manila_tempest_tests/tests/api/test_metadata.py b/manila_tempest_tests/tests/api/test_metadata.py
index 47d31f9..d075666 100644
--- a/manila_tempest_tests/tests/api/test_metadata.py
+++ b/manila_tempest_tests/tests/api/test_metadata.py
@@ -25,7 +25,7 @@
super(SharesMetadataTest, cls).resource_setup()
cls.share = cls.create_share()
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_in_share_creation(self):
md = {u"key1": u"value1", u"key2": u"value2", }
@@ -39,7 +39,7 @@
# verify metadata
self.assertEqual(md, metadata)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_get_delete_metadata(self):
md = {u"key3": u"value3", u"key4": u"value4", }
@@ -64,7 +64,7 @@
get_metadata = self.shares_client.get_metadata(share["id"])
self.assertEqual({}, get_metadata)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_and_update_metadata_by_key(self):
md1 = {u"key5": u"value5", u"key6": u"value6", }
@@ -85,7 +85,7 @@
# verify metadata
self.assertEqual(md2, get_md)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_min_size_key(self):
data = {"k": "value"}
@@ -94,7 +94,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data['k'], body_get.get('k'))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_max_size_key(self):
max_key = "k" * 255
data = {max_key: "value"}
@@ -105,7 +105,7 @@
self.assertIn(max_key, body_get)
self.assertEqual(data[max_key], body_get.get(max_key))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_min_size_value(self):
data = {"key": "v"}
@@ -114,7 +114,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data['key'], body_get['key'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_max_size_value(self):
max_value = "v" * 1023
data = {"key": max_value}
@@ -124,7 +124,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data['key'], body_get['key'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_upd_metadata_min_size_key(self):
data = {"k": "value"}
@@ -133,7 +133,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data, body_get)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_upd_metadata_max_size_key(self):
max_key = "k" * 255
data = {max_key: "value"}
@@ -143,7 +143,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data, body_get)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_upd_metadata_min_size_value(self):
data = {"key": "v"}
@@ -152,7 +152,7 @@
body_get = self.shares_client.get_metadata(self.share["id"])
self.assertEqual(data, body_get)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_upd_metadata_max_size_value(self):
max_value = "v" * 1023
data = {"key": max_value}
diff --git a/manila_tempest_tests/tests/api/test_metadata_negative.py b/manila_tempest_tests/tests/api/test_metadata_negative.py
index 4da60a6..7aec3e5 100644
--- a/manila_tempest_tests/tests/api/test_metadata_negative.py
+++ b/manila_tempest_tests/tests/api/test_metadata_negative.py
@@ -13,12 +13,35 @@
# License for the specific language governing permissions and limitations
# under the License.
+import ddt
from tempest.lib import exceptions as lib_exc # noqa
from tempest import test # noqa
from manila_tempest_tests.tests.api import base
+@ddt.ddt
+class SharesMetadataAPIOnlyNegativeTest(base.BaseSharesTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @ddt.data(True, False)
+ def test_try_set_metadata_to_unexisting_share(self, is_v2_client):
+ md = {u"key1": u"value1", u"key2": u"value2", }
+ client = self.shares_v2_client if is_v2_client else self.shares_client
+ self.assertRaises(lib_exc.NotFound,
+ client.set_metadata,
+ "wrong_share_id", md)
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @ddt.data(True, False)
+ def test_try_update_all_metadata_for_unexisting_share(self, is_v2_client):
+ md = {u"key1": u"value1", u"key2": u"value2", }
+ client = self.shares_v2_client if is_v2_client else self.shares_client
+ self.assertRaises(lib_exc.NotFound,
+ client.update_all_metadata,
+ "wrong_share_id", md)
+
+
class SharesMetadataNegativeTest(base.BaseSharesTest):
@classmethod
@@ -26,33 +49,19 @@
super(SharesMetadataNegativeTest, cls).resource_setup()
cls.share = cls.create_share()
- @test.attr(type=["gate", "negative", ])
- def test_try_set_metadata_to_unexisting_share(self):
- md = {u"key1": u"value1", u"key2": u"value2", }
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.set_metadata,
- "wrong_share_id", md)
-
- @test.attr(type=["gate", "negative", ])
- def test_try_update_all_metadata_for_unexisting_share(self):
- md = {u"key1": u"value1", u"key2": u"value2", }
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.update_all_metadata,
- "wrong_share_id", md)
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_set_metadata_with_empty_key(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.set_metadata,
self.share["id"], {"": "value"})
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_upd_metadata_with_empty_key(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.update_all_metadata,
self.share["id"], {"": "value"})
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_set_metadata_with_too_big_key(self):
too_big_key = "x" * 256
md = {too_big_key: "value"}
@@ -60,7 +69,7 @@
self.shares_client.set_metadata,
self.share["id"], md)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_upd_metadata_with_too_big_key(self):
too_big_key = "x" * 256
md = {too_big_key: "value"}
@@ -68,7 +77,7 @@
self.shares_client.update_all_metadata,
self.share["id"], md)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_set_metadata_with_too_big_value(self):
too_big_value = "x" * 1024
md = {"key": too_big_value}
@@ -76,7 +85,7 @@
self.shares_client.set_metadata,
self.share["id"], md)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_upd_metadata_with_too_big_value(self):
too_big_value = "x" * 1024
md = {"key": too_big_value}
@@ -84,7 +93,7 @@
self.shares_client.update_all_metadata,
self.share["id"], md)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_delete_unexisting_metadata(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_metadata,
diff --git a/manila_tempest_tests/tests/api/test_microversions.py b/manila_tempest_tests/tests/api/test_microversions.py
index 1de8b59..965b29b 100644
--- a/manila_tempest_tests/tests/api/test_microversions.py
+++ b/manila_tempest_tests/tests/api/test_microversions.py
@@ -33,7 +33,7 @@
Sends HTTP GET requests to the version API to validate microversions.
"""
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_root_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request()
@@ -55,7 +55,7 @@
self.assertEqual(_MIN_API_VERSION, v2.get('min_version'))
self.assertEqual(_MAX_API_VERSION, v2.get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v1_no_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request(
@@ -72,7 +72,7 @@
self.assertEqual('', version_list[0].get('min_version'))
self.assertEqual('', version_list[0].get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v1_with_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request(
@@ -89,7 +89,7 @@
self.assertEqual('', version_list[0].get('min_version'))
self.assertEqual('', version_list[0].get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v2_no_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request(
@@ -107,7 +107,7 @@
self.assertEqual(_MIN_API_VERSION, version_list[0].get('min_version'))
self.assertEqual(_MAX_API_VERSION, version_list[0].get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v2_min_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request(
@@ -125,7 +125,7 @@
self.assertEqual(_MIN_API_VERSION, version_list[0].get('min_version'))
self.assertEqual(_MAX_API_VERSION, version_list[0].get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v2_max_version(self):
resp, resp_body = self.shares_v2_client.send_microversion_request(
@@ -143,7 +143,7 @@
self.assertEqual(_MIN_API_VERSION, version_list[0].get('min_version'))
self.assertEqual(_MAX_API_VERSION, version_list[0].get('version'))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v2_invalid_version(self):
resp, _ = self.shares_v2_client.send_microversion_request(
@@ -151,7 +151,7 @@
self.assertEqual(400, resp.status)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_microversions_v2_unacceptable_version(self):
# First get max version from the server
diff --git a/manila_tempest_tests/tests/api/test_quotas.py b/manila_tempest_tests/tests/api/test_quotas.py
index 77eae42..3388393 100644
--- a/manila_tempest_tests/tests/api/test_quotas.py
+++ b/manila_tempest_tests/tests/api/test_quotas.py
@@ -34,7 +34,7 @@
cls.user_id = cls.shares_v2_client.user_id
cls.tenant_id = cls.shares_v2_client.tenant_id
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_default_quotas(self, client_name):
quotas = getattr(self, client_name).default_quotas(self.tenant_id)
@@ -44,7 +44,7 @@
self.assertGreater(int(quotas["snapshots"]), -2)
self.assertGreater(int(quotas["share_networks"]), -2)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_show_quotas(self, client_name):
quotas = getattr(self, client_name).show_quotas(self.tenant_id)
@@ -54,7 +54,7 @@
self.assertGreater(int(quotas["snapshots"]), -2)
self.assertGreater(int(quotas["share_networks"]), -2)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@ddt.data('shares_client', 'shares_v2_client')
def test_show_quotas_for_user(self, client_name):
quotas = getattr(self, client_name).show_quotas(
diff --git a/manila_tempest_tests/tests/api/test_quotas_negative.py b/manila_tempest_tests/tests/api/test_quotas_negative.py
index bf64290..6add9ac 100644
--- a/manila_tempest_tests/tests/api/test_quotas_negative.py
+++ b/manila_tempest_tests/tests/api/test_quotas_negative.py
@@ -33,18 +33,18 @@
raise cls.skipException(msg)
super(SharesQuotasNegativeTest, cls).resource_setup()
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_quotas_with_empty_tenant_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_v2_client.show_quotas, "")
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_reset_quotas_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_v2_client.reset_quotas,
self.shares_v2_client.tenant_id)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_quotas_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_v2_client.update_quotas,
@@ -66,7 +66,7 @@
('os-services', '2.7', 'update_quotas'),
)
@ddt.unpack
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
@base.skip_if_microversion_not_supported("2.7")
def test_show_quotas_with_wrong_versions(self, url, version, method_name):
self.assertRaises(
diff --git a/manila_tempest_tests/tests/api/test_replication.py b/manila_tempest_tests/tests/api/test_replication.py
index f45a72e..f09eb98 100644
--- a/manila_tempest_tests/tests/api/test_replication.py
+++ b/manila_tempest_tests/tests/api/test_replication.py
@@ -127,7 +127,7 @@
return access_type, access_to
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_add_delete_share_replica(self):
# Create the replica
share_replica = self._verify_create_replica()
@@ -135,7 +135,7 @@
# Delete the replica
self.delete_share_replica(share_replica["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_add_access_rule_create_replica_delete_rule(self):
# Add access rule to the share
access_type, access_to = self._verify_config_and_set_access_rule_data()
@@ -158,7 +158,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.shares[0]['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_replica_add_access_rule_delete_replica(self):
access_type, access_to = self._verify_config_and_set_access_rule_data()
# Create the replica
@@ -175,7 +175,7 @@
# Delete the replica
self.delete_share_replica(share_replica["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_add_multiple_share_replicas(self):
rep_domain, pools = self.get_pools_for_replication_domain()
if len(pools) < 3:
@@ -204,7 +204,7 @@
self.assertIn(share_replica1["id"], replica_ids)
self.assertIn(share_replica2["id"], replica_ids)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_promote_in_sync_share_replica(self):
# Test promote 'in_sync' share_replica to 'active' state
if (self.replication_type
@@ -235,7 +235,7 @@
self.assertEqual(constants.REPLICATION_STATE_ACTIVE,
promoted_replica["replica_state"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_promote_and_promote_back(self):
# Test promote back and forth between 2 share replicas
if (self.replication_type
@@ -277,7 +277,7 @@
new_replica['id'], constants.REPLICATION_STATE_IN_SYNC,
status_attr='replica_state')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_active_replication_state(self):
# Verify the replica_state of first instance is set to active.
replica = self.shares_v2_client.get_share_replica(self.instance_id1)
@@ -355,7 +355,7 @@
replica['id'], len(replica_id_list))
self.assertEqual(1, len(replica_id_list), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_show_share_replica(self):
replica = self.shares_v2_client.get_share_replica(self.replica1["id"])
@@ -366,7 +366,7 @@
'expected %s, got %s.' % (replica["id"],
detail_keys, actual_keys))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_detail_list_share_replicas_for_share(self):
# List replicas for share
replica_list = self.shares_v2_client.list_share_replicas(
@@ -378,7 +378,7 @@
# Verify keys
self._validate_replica_list(replica_list)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_detail_list_share_replicas_for_all_shares(self):
# List replicas for all available shares
replica_list = self.shares_v2_client.list_share_replicas()
@@ -390,7 +390,7 @@
# Verify keys
self._validate_replica_list(replica_list)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_summary_list_share_replicas_for_all_shares(self):
# List replicas
replica_list = self.shares_v2_client.list_share_replicas_summary()
diff --git a/manila_tempest_tests/tests/api/test_replication_negative.py b/manila_tempest_tests/tests/api/test_replication_negative.py
index 2587dc0..5258e2b 100644
--- a/manila_tempest_tests/tests/api/test_replication_negative.py
+++ b/manila_tempest_tests/tests/api/test_replication_negative.py
@@ -76,7 +76,7 @@
raise self.skipException(
msg % ','.join(constants.REPLICATION_PROMOTION_CHOICES))
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_add_replica_to_share_with_no_replication_share_type(self):
# Create share without replication type
share = self.create_share()
@@ -85,7 +85,7 @@
share['id'],
self.replica_zone)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_add_replica_to_share_with_error_state(self):
# Set "error" state
self.admin_client.reset_state(
@@ -98,25 +98,13 @@
self.share1['id'],
self.replica_zone)
- @test.attr(type=["gate", "negative", ])
- def test_get_replica_by_nonexistent_id(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.get_share_replica,
- data_utils.rand_uuid())
-
- @test.attr(type=["gate", "negative", ])
- def test_try_delete_replica_by_nonexistent_id(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.delete_share_replica,
- data_utils.rand_uuid())
-
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_delete_last_active_replica(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.delete_share_replica,
self.instance_id1)
- @test.attr(type=["gate", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_try_delete_share_having_replica(self):
self.create_share_replica(self.share1["id"], self.replica_zone,
cleanup_in_class=False)
@@ -124,7 +112,7 @@
self.shares_v2_client.delete_share,
self.share1["id"])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_promote_out_of_sync_share_replica(self):
# Test promoting an out_of_sync share_replica to active state
self._is_replication_type_promotable()
@@ -142,7 +130,7 @@
self.shares_v2_client.promote_share_replica,
replica['id'])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_promote_active_share_replica(self):
# Test promote active share_replica
self._is_replication_type_promotable()
@@ -151,7 +139,7 @@
self.shares_v2_client.promote_share_replica(self.instance_id1,
expected_status=200)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_promote_share_replica_for_writable_share_type(self):
# Test promote active share_replica for writable share
if self.replication_type != "writable":
@@ -167,3 +155,21 @@
# Try promoting the replica
self.shares_v2_client.promote_share_replica(replica['id'])
+
+
+@testtools.skipUnless(CONF.share.run_replication_tests,
+ 'Replication tests are disabled.')
+@base.skip_if_microversion_lt(_MIN_SUPPORTED_MICROVERSION)
+class ReplicationAPIOnlyNegativeTest(base.BaseSharesTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_replica_by_nonexistent_id(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.get_share_replica,
+ data_utils.rand_uuid())
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_try_delete_replica_by_nonexistent_id(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.delete_share_replica,
+ data_utils.rand_uuid())
diff --git a/manila_tempest_tests/tests/api/test_replication_snapshots.py b/manila_tempest_tests/tests/api/test_replication_snapshots.py
index 72121f1..73b1fdd 100644
--- a/manila_tempest_tests/tests/api/test_replication_snapshots.py
+++ b/manila_tempest_tests/tests/api/test_replication_snapshots.py
@@ -63,7 +63,7 @@
'availability_zone': cls.share_zone,
}}
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_snapshot_after_share_replica(self):
"""Test the snapshot for replicated share.
@@ -89,7 +89,7 @@
self.delete_share_replica(original_replica['id'])
self.create_share(snapshot_id=snapshot['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_snapshot_before_share_replica(self):
"""Test the snapshot for replicated share.
@@ -119,7 +119,7 @@
self.delete_share_replica(original_replica['id'])
self.create_share(snapshot_id=snapshot['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_snapshot_before_and_after_share_replica(self):
"""Test the snapshot for replicated share.
@@ -156,7 +156,7 @@
self.create_share(snapshot_id=snapshot1['id'])
self.create_share(snapshot_id=snapshot2['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_delete_snapshot_after_adding_replica(self):
"""Verify the snapshot delete.
@@ -176,7 +176,7 @@
self.shares_v2_client.wait_for_resource_deletion(
snapshot_id=snapshot["id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_replica_from_snapshot_share(self):
"""Test replica for a share that was created from snapshot."""
diff --git a/manila_tempest_tests/tests/api/test_rules.py b/manila_tempest_tests/tests/api/test_rules.py
index fce3e44..09ad7a4 100644
--- a/manila_tempest_tests/tests/api/test_rules.py
+++ b/manila_tempest_tests/tests/api/test_rules.py
@@ -78,7 +78,7 @@
cls.access_type = "ip"
cls.access_to = "2.2.2.2"
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_create_delete_access_rules_with_one_ip(self, version):
@@ -120,7 +120,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.share['id'], version=version)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_create_delete_access_rule_with_cidr(self, version):
@@ -162,7 +162,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.share['id'], version=version)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(
"nfs" not in CONF.share.enable_ro_access_level_for_protocols,
"RO access rule tests are disabled for NFS protocol.")
@@ -175,7 +175,7 @@
class ShareIpRulesForCIFSTest(ShareIpRulesForNFSTest):
protocol = "cifs"
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(
"cifs" not in CONF.share.enable_ro_access_level_for_protocols,
"RO access rule tests are disabled for CIFS protocol.")
@@ -200,7 +200,7 @@
cls.access_type = "user"
cls.access_to = CONF.share.username_for_user_rules
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_create_delete_user_rule(self, version):
@@ -239,7 +239,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.share['id'], version=version)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(
"nfs" not in CONF.share.enable_ro_access_level_for_protocols,
"RO access rule tests are disabled for NFS protocol.")
@@ -252,7 +252,7 @@
class ShareUserRulesForCIFSTest(ShareUserRulesForNFSTest):
protocol = "cifs"
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(
"cifs" not in CONF.share.enable_ro_access_level_for_protocols,
"RO access rule tests are disabled for CIFS protocol.")
@@ -279,7 +279,7 @@
# certificate that it possesses.
cls.access_to = "client1.com"
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_create_delete_cert_rule(self, version):
@@ -318,7 +318,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.share['id'], version=version)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(
"glusterfs" not in CONF.share.enable_ro_access_level_for_protocols,
"RO access rule tests are disabled for GLUSTERFS protocol.")
@@ -376,7 +376,7 @@
# Provide access to a client identified by a cephx auth id.
cls.access_to = "bob"
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@ddt.data("alice", "alice_bob", "alice bob")
def test_create_delete_cephx_rule(self, access_to):
rule = self.shares_v2_client.create_access_rule(
@@ -428,7 +428,7 @@
cls.shares_v2_client.share_protocol = cls.protocol
cls.share = cls.create_share()
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_list_access_rules(self, version):
if (utils.is_microversion_lt(version, '2.13') and
@@ -490,7 +490,7 @@
self.shares_v2_client.wait_for_resource_deletion(
rule_id=rule["id"], share_id=self.share['id'], version=version)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_access_rules_deleted_if_share_deleted(self, version):
if (utils.is_microversion_lt(version, '2.13') and
diff --git a/manila_tempest_tests/tests/api/test_rules_negative.py b/manila_tempest_tests/tests/api/test_rules_negative.py
index a35c18a..376ba85 100644
--- a/manila_tempest_tests/tests/api/test_rules_negative.py
+++ b/manila_tempest_tests/tests/api/test_rules_negative.py
@@ -44,63 +44,63 @@
# create snapshot
cls.snap = cls.create_snapshot_wait_for_active(cls.share["id"])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_1(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.256")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_2(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.1.1.-")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_3(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.4/33")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_4(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.*")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_5(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.*/23")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_6(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.1|23")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_7(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.1/-1")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_target_8(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "ip", "1.2.3.1/")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_with_wrong_level(self, client_name):
self.assertRaises(lib_exc.BadRequest,
@@ -110,7 +110,7 @@
'2.2.2.2',
'su')
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('1.0', '2.9', LATEST_MICROVERSION)
def test_create_duplicate_of_ip_rule(self, version):
# test data
@@ -182,7 +182,7 @@
# create snapshot
cls.snap = cls.create_snapshot_wait_for_active(cls.share["id"])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_wrong_input_2(self, client_name):
self.assertRaises(lib_exc.BadRequest,
@@ -190,28 +190,28 @@
self.share["id"], "user",
"try+")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_empty_key(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "user", "")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_too_little_key(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "user", "abc")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_too_big_key(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "user", "a" * 33)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_wrong_input_1(self, client_name):
self.assertRaises(lib_exc.BadRequest,
@@ -219,7 +219,7 @@
self.share["id"], "user",
"try+")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
@@ -230,7 +230,7 @@
access_type="user",
access_to="fakeuser")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_user_with_wrong_share_id(self, client_name):
self.assertRaises(lib_exc.NotFound,
@@ -239,7 +239,7 @@
access_type="user",
access_to="fakeuser")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_with_wrong_level(self, client_name):
self.assertRaises(lib_exc.BadRequest,
@@ -272,14 +272,14 @@
# create snapshot
cls.snap = cls.create_snapshot_wait_for_active(cls.share["id"])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_cert_with_empty_common_name(self, client_name):
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "cert", "")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_cert_with_whitespace_common_name(self,
client_name):
@@ -287,7 +287,7 @@
getattr(self, client_name).create_access_rule,
self.share["id"], "cert", " ")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_cert_with_too_big_common_name(self,
client_name):
@@ -296,7 +296,7 @@
getattr(self, client_name).create_access_rule,
self.share["id"], "cert", "a" * 65)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
@ddt.data('shares_client', 'shares_v2_client')
@@ -307,7 +307,7 @@
access_type="cert",
access_to="fakeclient1.com")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_cert_with_wrong_share_id(self, client_name):
self.assertRaises(lib_exc.NotFound,
@@ -334,21 +334,21 @@
cls.access_type = "cephx"
cls.access_to = "david"
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('jane.doe', u"bj\u00F6rn")
def test_create_access_rule_cephx_with_invalid_cephx_id(self, access_to):
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.create_access_rule,
self.share["id"], self.access_type, access_to)
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_access_rule_cephx_with_wrong_level(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_v2_client.create_access_rule,
self.share["id"], self.access_type, self.access_to,
access_level="su")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_create_access_rule_cephx_with_unsupported_access_level_ro(self):
rule = self.shares_v2_client.create_access_rule(
self.share["id"], self.access_type, self.access_to,
@@ -359,6 +359,18 @@
self.share['id'], rule['id'], "active")
+def skip_if_cephx_access_type_not_supported_by_client(self, client):
+ if client == 'shares_client':
+ version = '1.0'
+ else:
+ version = LATEST_MICROVERSION
+ if (CONF.share.enable_cephx_rules_for_protocols and
+ utils.is_microversion_lt(version, '2.13')):
+ msg = ("API version %s does not support cephx access type, "
+ "need version greater than 2.13." % version)
+ raise self.skipException(msg)
+
+
@ddt.ddt
class ShareRulesNegativeTest(base.BaseSharesTest):
# Tests independent from rule type and share protocol
@@ -382,47 +394,40 @@
# create snapshot
cls.snap = cls.create_snapshot_wait_for_active(cls.share["id"])
- def skip_if_cephx_access_type_not_supported_by_client(self, client):
- if client == 'shares_client':
- version = '1.0'
- else:
- version = LATEST_MICROVERSION
- if (CONF.share.enable_cephx_rules_for_protocols and
- utils.is_microversion_lt(version, '2.13')):
- msg = ("API version %s does not support cephx access type, "
- "need version greater than 2.13." % version)
- raise self.skipException(msg)
-
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_delete_access_rule_with_wrong_id(self, client_name):
- self.skip_if_cephx_access_type_not_supported_by_client(client_name)
+ skip_if_cephx_access_type_not_supported_by_client(self, client_name)
self.assertRaises(lib_exc.NotFound,
getattr(self, client_name).delete_access_rule,
self.share["id"], "wrong_rule_id")
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
def test_create_access_rule_ip_with_wrong_type(self, client_name):
- self.skip_if_cephx_access_type_not_supported_by_client(client_name)
+ skip_if_cephx_access_type_not_supported_by_client(self, client_name)
self.assertRaises(lib_exc.BadRequest,
getattr(self, client_name).create_access_rule,
self.share["id"], "wrong_type", "1.2.3.4")
- @test.attr(type=["negative", "gate", ])
- @ddt.data('shares_client', 'shares_v2_client')
- def test_create_access_rule_ip_with_wrong_share_id(self, client_name):
- self.skip_if_cephx_access_type_not_supported_by_client(client_name)
- self.assertRaises(lib_exc.NotFound,
- getattr(self, client_name).create_access_rule,
- "wrong_share_id")
-
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@ddt.data('shares_client', 'shares_v2_client')
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_create_access_rule_ip_to_snapshot(self, client_name):
- self.skip_if_cephx_access_type_not_supported_by_client(client_name)
+ skip_if_cephx_access_type_not_supported_by_client(self, client_name)
self.assertRaises(lib_exc.NotFound,
getattr(self, client_name).create_access_rule,
self.snap["id"])
+
+
+@ddt.ddt
+class ShareRulesAPIOnlyNegativeTest(base.BaseSharesTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @ddt.data('shares_client', 'shares_v2_client')
+ def test_create_access_rule_ip_with_wrong_share_id(self, client_name):
+ skip_if_cephx_access_type_not_supported_by_client(self, client_name)
+ self.assertRaises(lib_exc.NotFound,
+ getattr(self, client_name).create_access_rule,
+ "wrong_share_id")
diff --git a/manila_tempest_tests/tests/api/test_scheduler_stats_negative.py b/manila_tempest_tests/tests/api/test_scheduler_stats_negative.py
index dd7a498..c9aac84 100644
--- a/manila_tempest_tests/tests/api/test_scheduler_stats_negative.py
+++ b/manila_tempest_tests/tests/api/test_scheduler_stats_negative.py
@@ -21,12 +21,12 @@
class SchedulerStatsNegativeTest(base.BaseSharesTest):
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_pools_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.list_pools)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_pools_detailed_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.list_pools,
diff --git a/manila_tempest_tests/tests/api/test_security_services.py b/manila_tempest_tests/tests/api/test_security_services.py
index c0d67ec..a156cac 100644
--- a/manila_tempest_tests/tests/api/test_security_services.py
+++ b/manila_tempest_tests/tests/api/test_security_services.py
@@ -27,7 +27,7 @@
class SecurityServiceListMixin(object):
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_security_services(self):
listed = self.shares_client.list_security_services()
self.assertTrue(any(self.ss_ldap['id'] == ss['id'] for ss in listed))
@@ -38,7 +38,7 @@
keys = ["name", "id", "status", "type", ]
[self.assertIn(key, s_s.keys()) for s_s in listed for key in keys]
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_security_services_with_detail(self):
listed = self.shares_client.list_security_services(detailed=True)
self.assertTrue(any(self.ss_ldap['id'] == ss['id'] for ss in listed))
@@ -53,7 +53,7 @@
]
[self.assertIn(key, s_s.keys()) for s_s in listed for key in keys]
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_list_security_services_filter_by_share_network(self):
@@ -79,7 +79,7 @@
keys = ["name", "id", "status", "type", ]
[self.assertIn(key, s_s.keys()) for s_s in listed for key in keys]
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_security_services_detailed_filter_by_ss_attributes(self):
search_opts = {
'name': 'ss_ldap',
@@ -122,7 +122,7 @@
self.ss_kerberos = self.create_security_service(
'kerberos', **ss_kerberos_data)
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_create_delete_security_service(self):
data = self.generate_security_service_data()
self.service_names = ["ldap", "kerberos", "active_directory"]
@@ -132,7 +132,7 @@
self.assertEqual(ss_name, ss["type"])
self.shares_client.delete_security_service(ss["id"])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_get_security_service(self):
data = self.generate_security_service_data()
ss = self.create_security_service(**data)
@@ -141,7 +141,7 @@
get = self.shares_client.get_security_service(ss["id"])
self.assertDictContainsSubset(data, get)
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_security_service(self):
data = self.generate_security_service_data()
ss = self.create_security_service(**data)
@@ -155,7 +155,7 @@
self.assertDictContainsSubset(upd_data, updated)
self.assertDictContainsSubset(upd_data, get)
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_try_update_valid_keys_sh_server_exists(self):
@@ -193,7 +193,7 @@
ss["id"], **update_data)
self.assertDictContainsSubset(update_data, updated)
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_security_services_filter_by_invalid_opt(self):
listed = self.shares_client.list_security_services(
params={'fake_opt': 'some_value'})
diff --git a/manila_tempest_tests/tests/api/test_security_services_mapping.py b/manila_tempest_tests/tests/api/test_security_services_mapping.py
index 7173e22..33d8ccb 100644
--- a/manila_tempest_tests/tests/api/test_security_services_mapping.py
+++ b/manila_tempest_tests/tests/api/test_security_services_mapping.py
@@ -43,7 +43,7 @@
# Add security service to share network
self.cl.add_sec_service_to_share_network(self.sn["id"], self.ss["id"])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_map_ss_to_sn_and_list(self):
# List security services for share network
@@ -52,14 +52,14 @@
for key in ["status", "id", "name"]:
self.assertIn(self.ss[key], ls[0][key])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_map_ss_to_sn_and_delete(self):
# Remove security service from share network
self.cl.remove_sec_service_from_share_network(
self.sn["id"], self.ss["id"])
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_remap_ss_to_sn(self):
# Remove security service from share network
diff --git a/manila_tempest_tests/tests/api/test_security_services_mapping_negative.py b/manila_tempest_tests/tests/api/test_security_services_mapping_negative.py
index 6a5f18f..15010da 100644
--- a/manila_tempest_tests/tests/api/test_security_services_mapping_negative.py
+++ b/manila_tempest_tests/tests/api/test_security_services_mapping_negative.py
@@ -35,62 +35,62 @@
cls.ss = cls.create_security_service(cleanup_in_class=True)
cls.cl = cls.shares_client
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_sec_service_twice_to_share_network(self):
self.cl.add_sec_service_to_share_network(self.sn["id"], self.ss["id"])
self.assertRaises(lib_exc.Conflict,
self.cl.add_sec_service_to_share_network,
self.sn["id"], self.ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_nonexistant_sec_service_to_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.add_sec_service_to_share_network,
self.sn["id"], "wrong_ss_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_empty_sec_service_id_to_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.add_sec_service_to_share_network,
self.sn["id"], "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_sec_service_to_nonexistant_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.add_sec_service_to_share_network,
"wrong_sn_id", self.ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_add_sec_service_to_share_network_with_empty_id(self):
self.assertRaises(lib_exc.NotFound,
self.cl.add_sec_service_to_share_network,
"", self.ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_list_sec_services_for_nonexistant_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.list_sec_services_for_share_network,
"wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_delete_nonexistant_sec_service_from_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.remove_sec_service_from_share_network,
self.sn["id"], "wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_delete_sec_service_from_nonexistant_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.cl.remove_sec_service_from_share_network,
"wrong_id", self.ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_delete_nonexistant_ss_from_nonexistant_sn(self):
self.assertRaises(lib_exc.NotFound,
self.cl.remove_sec_service_from_share_network,
"wrong_id", "wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_delete_ss_from_sn_used_by_share_server(self):
@@ -122,7 +122,7 @@
fresh_sn["id"],
self.ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_map_two_ss_with_same_type_to_sn(self):
# create share network
data = self.generate_share_network_data()
@@ -147,7 +147,7 @@
self.cl.add_sec_service_to_share_network,
sn["id"], security_services[1]["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_ss_that_assigned_to_sn(self):
# create share network
data = self.generate_share_network_data()
diff --git a/manila_tempest_tests/tests/api/test_security_services_negative.py b/manila_tempest_tests/tests/api/test_security_services_negative.py
index 80139b8..f7966f5 100644
--- a/manila_tempest_tests/tests/api/test_security_services_negative.py
+++ b/manila_tempest_tests/tests/api/test_security_services_negative.py
@@ -28,52 +28,52 @@
class SecurityServicesNegativeTest(base.BaseSharesTest):
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_security_service_with_empty_type(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.create_security_service, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_security_service_with_wrong_type(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.create_security_service,
"wrong_type")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_security_service_without_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_security_service, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_security_service_with_wrong_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_security_service,
"wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_security_service_without_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_security_service, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_security_service_with_wrong_type(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_security_service,
"wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_nonexistant_security_service(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_security_service,
"wrong_id", name="name")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_security_service_with_empty_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_security_service,
"", name="name")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_try_update_invalid_keys_sh_server_exists(self):
@@ -108,7 +108,7 @@
ss["id"],
user="new_user")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_get_deleted_security_service(self):
data = self.generate_security_service_data()
ss = self.create_security_service(**data)
@@ -121,7 +121,7 @@
self.shares_client.get_security_service,
ss["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_security_services_all_tenants(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.list_security_services,
diff --git a/manila_tempest_tests/tests/api/test_share_networks.py b/manila_tempest_tests/tests/api/test_share_networks.py
index 83c4dd5..bd3698b 100644
--- a/manila_tempest_tests/tests/api/test_share_networks.py
+++ b/manila_tempest_tests/tests/api/test_share_networks.py
@@ -26,6 +26,7 @@
class ShareNetworkListMixin(object):
@test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks(self):
listed = self.shares_client.list_share_networks()
any(self.sn_with_ldap_ss["id"] in sn["id"] for sn in listed)
@@ -34,7 +35,7 @@
keys = ["name", "id"]
[self.assertIn(key, sn.keys()) for sn in listed for key in keys]
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks_with_detail(self):
listed = self.shares_client.list_share_networks_with_detail()
any(self.sn_with_ldap_ss["id"] in sn["id"] for sn in listed)
@@ -48,7 +49,7 @@
]
[self.assertIn(key, sn.keys()) for sn in listed for key in keys]
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks_filter_by_ss(self):
listed = self.shares_client.list_share_networks_with_detail(
{'security_service_id': self.ss_ldap['id']})
@@ -60,7 +61,7 @@
self.assertTrue(any(ss['id'] == self.ss_ldap['id']
for ss in ss_list))
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_list_share_networks_all_filter_opts(self):
valid_filter_opts = {
'created_before': '2002-10-10',
@@ -140,7 +141,7 @@
cls.sn_with_kerberos_ss["id"],
cls.ss_kerberos["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_create_delete_share_network(self):
# generate data for share network
data = self.generate_share_network_data()
@@ -152,7 +153,7 @@
# Delete share_network
self.shares_client.delete_share_network(created["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_get_share_network(self):
get = self.shares_client.get_share_network(self.sn_with_ldap_ss["id"])
self.assertEqual('2002-02-02T00:00:00.000000', get['created_at'])
@@ -160,7 +161,7 @@
del data['created_at']
self.assertDictContainsSubset(data, get)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_update_share_network(self):
update_data = self.generate_share_network_data()
updated = self.shares_client.update_share_network(
@@ -168,7 +169,7 @@
**update_data)
self.assertDictContainsSubset(update_data, updated)
- @test.attr(type=["gate", "smoke"])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_update_valid_keys_sh_server_exists(self):
@@ -181,7 +182,7 @@
self.shares_client.share_network_id, **update_dict)
self.assertDictContainsSubset(update_dict, updated)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_recreate_share_network(self):
# generate data for share network
data = self.generate_share_network_data()
@@ -200,7 +201,7 @@
# Delete second share network
self.shares_client.delete_share_network(sn2["id"])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API])
def test_create_two_share_networks_with_same_net_and_subnet(self):
# generate data for share network
data = self.generate_share_network_data()
diff --git a/manila_tempest_tests/tests/api/test_share_networks_negative.py b/manila_tempest_tests/tests/api/test_share_networks_negative.py
index d337d4a..f9b341c 100644
--- a/manila_tempest_tests/tests/api/test_share_networks_negative.py
+++ b/manila_tempest_tests/tests/api/test_share_networks_negative.py
@@ -25,39 +25,39 @@
class ShareNetworksNegativeTest(base.BaseSharesTest):
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_share_network_without_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_network, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_share_network_with_wrong_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_share_network, "wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_share_network_without_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_network, "")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_share_network_with_wrong_type(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.delete_share_network, "wrong_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_nonexistant_share_network(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_network,
"wrong_id", name="name")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_update_share_network_with_empty_id(self):
self.assertRaises(lib_exc.NotFound,
self.shares_client.update_share_network,
"", name="name")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_try_update_invalid_keys_sh_server_exists(self):
@@ -68,7 +68,7 @@
self.shares_client.share_network_id,
neutron_net_id="new_net_id")
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_get_deleted_share_network(self):
data = self.generate_share_network_data()
sn = self.create_share_network(**data)
@@ -81,33 +81,33 @@
self.shares_client.get_security_service,
sn["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_share_networks_all_tenants(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.list_share_networks_with_detail,
params={'all_tenants': 1})
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_share_networks_project_id(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.list_share_networks_with_detail,
params={'project_id': 'some_project'})
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_share_networks_wrong_created_since_value(self):
self.assertRaises(
lib_exc.BadRequest,
self.shares_client.list_share_networks_with_detail,
params={'created_since': '2014-10-23T08:31:58.000000'})
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_list_share_networks_wrong_created_before_value(self):
self.assertRaises(
lib_exc.BadRequest,
self.shares_client.list_share_networks_with_detail,
params={'created_before': '2014-10-23T08:31:58.000000'})
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(not CONF.share.multitenancy_enabled,
'Can run only with drivers that do handle share servers '
'creation. Skipping.')
diff --git a/manila_tempest_tests/tests/api/test_share_types_negative.py b/manila_tempest_tests/tests/api/test_share_types_negative.py
index 9be479b..5273d65 100644
--- a/manila_tempest_tests/tests/api/test_share_types_negative.py
+++ b/manila_tempest_tests/tests/api/test_share_types_negative.py
@@ -36,27 +36,27 @@
super(ShareTypesNegativeTest, cls).resource_setup()
cls.st = cls._create_share_type()
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_create_share_type_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.create_share_type,
data_utils.rand_name("used_user_creds"),
client=self.shares_client)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_delete_share_type_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.delete_share_type,
self.st["share_type"]["id"])
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_add_access_to_share_type_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.add_access_to_share_type,
self.st['share_type']['id'],
self.shares_client.tenant_id)
- @test.attr(type=["gate", "smoke", "negative"])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_try_remove_access_from_share_type_with_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.remove_access_from_share_type,
diff --git a/manila_tempest_tests/tests/api/test_shares.py b/manila_tempest_tests/tests/api/test_shares.py
index 760f2f0..1da57e4 100644
--- a/manila_tempest_tests/tests/api/test_shares.py
+++ b/manila_tempest_tests/tests/api/test_shares.py
@@ -36,7 +36,7 @@
raise cls.skipException(message)
cls.share = cls.create_share(cls.protocol)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
def test_create_get_delete_share(self):
share = self.create_share(self.protocol)
@@ -97,7 +97,7 @@
self.shares_v2_client.get_share,
share['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_create_delete_snapshot(self):
@@ -119,7 +119,7 @@
self.assertRaises(lib_exc.NotFound,
self.shares_client.get_snapshot, snap['id'])
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_create_share_from_snapshot(self):
@@ -143,7 +143,7 @@
"source of share %s" % (snap["id"], get["snapshot_id"])
self.assertEqual(get["snapshot_id"], snap["id"], msg)
- @test.attr(type=["gate", "smoke", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipIf(not CONF.share.multitenancy_enabled,
"Only for multitenancy.")
@testtools.skipUnless(CONF.share.run_snapshot_tests,
diff --git a/manila_tempest_tests/tests/api/test_shares_actions.py b/manila_tempest_tests/tests/api/test_shares_actions.py
index b00cef4..16b8b58 100644
--- a/manila_tempest_tests/tests/api/test_shares_actions.py
+++ b/manila_tempest_tests/tests/api/test_shares_actions.py
@@ -119,45 +119,45 @@
share["size"])
self.assertEqual(self.share_size, int(share["size"]), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_v2_1(self):
self._get_share('2.1')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_get_share_with_snapshot_support_key(self):
self._get_share('2.2')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.4')
def test_get_share_with_consistency_groups_keys(self):
self._get_share('2.4')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.6')
def test_get_share_with_share_type_name_key(self):
self._get_share('2.6')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.9')
def test_get_share_export_locations_removed(self):
self._get_share('2.9')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.10')
def test_get_share_with_access_rules_status(self):
self._get_share('2.10')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.11')
def test_get_share_with_replication_type_key(self):
self._get_share('2.11')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.16')
def test_get_share_with_user_id(self):
self._get_share('2.16')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares(self):
# list shares
@@ -209,45 +209,45 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_v2_1(self):
self._list_shares_with_detail('2.1')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_and_snapshot_support_key(self):
self._list_shares_with_detail('2.2')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.4')
def test_list_shares_with_detail_consistency_groups_keys(self):
self._list_shares_with_detail('2.4')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.6')
def test_list_shares_with_detail_share_type_name_key(self):
self._list_shares_with_detail('2.6')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.9')
def test_list_shares_with_detail_export_locations_removed(self):
self._list_shares_with_detail('2.9')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.10')
def test_list_shares_with_detail_with_access_rules_status(self):
self._list_shares_with_detail('2.10')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.11')
def test_list_shares_with_detail_replication_type_key(self):
self._list_shares_with_detail('2.11')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@utils.skip_if_microversion_not_supported('2.16')
def test_list_shares_with_user_id(self):
self._list_shares_with_detail('2.16')
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_metadata(self):
filters = {'metadata': self.metadata}
@@ -262,7 +262,7 @@
if CONF.share.run_snapshot_tests:
self.assertFalse(self.shares[1]['id'] in [s['id'] for s in shares])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_host(self):
base_share = self.shares_client.get_share(self.shares[0]['id'])
filters = {'host': base_share['host']}
@@ -275,7 +275,7 @@
for share in shares:
self.assertEqual(filters['host'], share['host'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(
not CONF.share.multitenancy_enabled, "Only for multitenancy.")
def test_list_shares_with_detail_filter_by_share_network_id(self):
@@ -291,7 +291,7 @@
self.assertEqual(
filters['share_network_id'], share['share_network_id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_shares_with_detail_filter_by_snapshot_id(self):
@@ -306,7 +306,7 @@
self.assertEqual(filters['snapshot_id'], share['snapshot_id'])
self.assertFalse(self.shares[0]['id'] in [s['id'] for s in shares])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_with_asc_sorting(self):
filters = {'sort_key': 'created_at', 'sort_dir': 'asc'}
@@ -318,21 +318,21 @@
sorted_list = [share['created_at'] for share in shares]
self.assertEqual(sorted(sorted_list), sorted_list)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_existed_name(self):
# list shares by name, at least one share is expected
params = {"name": self.share_name}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(self.share_name, shares[0]["name"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_fake_name(self):
# list shares by fake name, no shares are expected
params = {"name": data_utils.rand_name("fake-nonexistent-name")}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(0, len(shares))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_active_status(self):
# list shares by active status, at least one share is expected
params = {"status": "available"}
@@ -341,14 +341,14 @@
for share in shares:
self.assertEqual(params["status"], share["status"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_fake_status(self):
# list shares by fake status, no shares are expected
params = {"status": 'fake'}
shares = self.shares_client.list_shares_with_detail(params)
self.assertEqual(0, len(shares))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_with_detail_filter_by_all_tenants(self):
# non-admin user can get shares only from his project
params = {"all_tenants": 1}
@@ -361,7 +361,7 @@
for share in shares:
self.assertEqual(project_id, share["project_id"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_list_shares_public_with_detail(self):
public_share = self.create_share(
name='public_share',
@@ -396,7 +396,7 @@
self.assertFalse(any([s["id"] == private_share["id"] for s in shares]))
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_get_snapshot(self):
@@ -424,7 +424,7 @@
"actual share_id: '%s'" % (self.shares[0]["id"], get["share_id"])
self.assertEqual(self.shares[0]["id"], get["share_id"], msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots(self):
@@ -441,7 +441,7 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots_with_detail(self):
@@ -460,7 +460,7 @@
msg = "expected id lists %s times in share list" % (len(gen))
self.assertEqual(1, len(gen), msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots_with_detail_use_limit(self):
@@ -486,7 +486,7 @@
self.assertEqual(1, len(snaps['snapshots']))
self.assertEqual(self.snap['id'], snaps['snapshots'][0]['id'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots_with_detail_filter_by_status_and_name(self):
@@ -502,7 +502,7 @@
self.assertEqual(filters['status'], snap['status'])
self.assertEqual(filters['name'], snap['name'])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_list_snapshots_with_detail_and_asc_sorting(self):
@@ -517,7 +517,7 @@
sorted_list = [snap['share_id'] for snap in snaps]
self.assertEqual(sorted(sorted_list), sorted_list)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(
CONF.share.run_extend_tests,
"Share extend tests are disabled.")
@@ -540,7 +540,7 @@
)
self.assertEqual(new_size, share_get['size'], msg)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_BACKEND])
@testtools.skipUnless(
CONF.share.run_shrink_tests,
"Share shrink tests are disabled.")
@@ -586,7 +586,7 @@
cls.snap = cls.create_snapshot_wait_for_active(
cls.share["id"], cls.snap_name, cls.snap_desc)
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
def test_update_share(self):
# get share
@@ -610,7 +610,7 @@
self.assertEqual(new_desc, share["description"])
self.assertTrue(share["is_public"])
- @test.attr(type=["gate", ])
+ @test.attr(type=[base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_rename_snapshot(self):
diff --git a/manila_tempest_tests/tests/api/test_shares_actions_negative.py b/manila_tempest_tests/tests/api/test_shares_actions_negative.py
index 891c491..919b6e5 100644
--- a/manila_tempest_tests/tests/api/test_shares_actions_negative.py
+++ b/manila_tempest_tests/tests/api/test_shares_actions_negative.py
@@ -32,7 +32,7 @@
size=1,
)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_extend_tests,
"Share extend tests are disabled.")
@@ -50,7 +50,7 @@
self.share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_extend_tests,
"Share extend tests are disabled.")
@@ -63,7 +63,7 @@
self.share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_extend_tests,
"Share extend tests are disabled.")
@@ -76,7 +76,7 @@
self.share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_extend_tests,
"Share extend tests are disabled.")
@@ -94,7 +94,7 @@
share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_shrink_tests,
"Share shrink tests are disabled.")
@@ -107,7 +107,7 @@
self.share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_shrink_tests,
"Share shrink tests are disabled.")
@@ -120,7 +120,7 @@
self.share['id'],
new_size)
- @test.attr(type=["negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(
CONF.share.run_shrink_tests,
"Share shrink tests are disabled.")
diff --git a/manila_tempest_tests/tests/api/test_shares_negative.py b/manila_tempest_tests/tests/api/test_shares_negative.py
index 0e91302..a8a4a6b 100644
--- a/manila_tempest_tests/tests/api/test_shares_negative.py
+++ b/manila_tempest_tests/tests/api/test_shares_negative.py
@@ -36,90 +36,13 @@
metadata={'key': 'value'}
)
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_share_with_invalid_protocol(self):
- self.assertRaises(lib_exc.BadRequest,
- self.shares_client.create_share,
- share_protocol="nonexistent_protocol")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_share_with_wrong_public_value(self):
- self.assertRaises(lib_exc.BadRequest,
- self.shares_client.create_share, is_public='truebar')
-
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_update_share_with_wrong_public_value(self):
self.assertRaises(lib_exc.BadRequest,
self.shares_client.update_share, self.share["id"],
is_public="truebar")
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_get_share_with_wrong_id(self):
- self.assertRaises(lib_exc.NotFound, self.shares_client.get_share,
- "wrong_share_id")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_get_share_without_passing_share_id(self):
- # Should not be able to get share when empty ID is passed
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.get_share, '')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_list_shares_nonadmin_with_nonexistent_share_server_filter(self):
- # filtering by share server allowed only for admins by default
- self.assertRaises(lib_exc.Forbidden,
- self.shares_client.list_shares_with_detail,
- {'share_server_id': 'fake_share_server_id'})
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_delete_share_with_wrong_id(self):
- self.assertRaises(lib_exc.NotFound, self.shares_client.delete_share,
- "wrong_share_id")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_delete_share_without_passing_share_id(self):
- # Should not be able to delete share when empty ID is passed
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.delete_share, '')
-
- @test.attr(type=["negative", "smoke", "gate", ])
- @testtools.skipUnless(CONF.share.run_snapshot_tests,
- "Snapshot tests are disabled.")
- def test_create_snapshot_with_wrong_id(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.create_snapshot,
- "wrong_share_id")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- @testtools.skipUnless(CONF.share.run_snapshot_tests,
- "Snapshot tests are disabled.")
- def test_delete_snapshot_with_wrong_id(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_client.delete_snapshot,
- "wrong_share_id")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_share_with_invalid_size(self):
- self.assertRaises(lib_exc.BadRequest,
- self.shares_client.create_share, size="#$%")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_share_with_out_passing_size(self):
- self.assertRaises(lib_exc.BadRequest,
- self.shares_client.create_share, size="")
-
- @test.attr(type=["negative", "smoke", "gate", ])
- def test_create_share_with_zero_size(self):
- self.assertRaises(lib_exc.BadRequest,
- self.shares_client.create_share, size=0)
-
- @test.attr(type=["negative", "gate", ])
- def test_create_share_non_existent_az(self):
- self.assertRaises(lib_exc.NotFound,
- self.shares_v2_client.create_share,
- availability_zone='fake_az')
-
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_try_delete_share_with_existing_snapshot(self):
@@ -135,7 +58,7 @@
self.assertRaises(lib_exc.Forbidden,
self.shares_client.delete_share, share["id"])
- @test.attr(type=["negative", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipUnless(CONF.share.run_snapshot_tests,
"Snapshot tests are disabled.")
def test_create_share_from_snap_with_less_size(self):
@@ -160,7 +83,7 @@
size=1, snapshot_id=snap["id"],
cleanup_in_class=False)
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(not CONF.share.multitenancy_enabled,
"Only for multitenancy.")
def test_create_share_with_nonexistant_share_network(self):
@@ -168,7 +91,7 @@
self.shares_client.create_share,
share_network_id="wrong_sn_id")
- @test.attr(type=["negative", "smoke", "gate", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
@testtools.skipIf(not CONF.share.multitenancy_enabled,
"Only for multitenancy.")
@testtools.skipUnless(CONF.share.run_snapshot_tests,
@@ -203,14 +126,14 @@
snapshot_id=snap["id"],
)
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_update_other_tenants_public_share(self):
isolated_client = self.get_client_with_isolated_creds(
type_of_creds='alt')
self.assertRaises(lib_exc.Forbidden, isolated_client.update_share,
self.share["id"], name="new_name")
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_other_tenants_public_share(self):
isolated_client = self.get_client_with_isolated_creds(
type_of_creds='alt')
@@ -218,7 +141,7 @@
isolated_client.delete_share,
self.share['id'])
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_set_metadata_of_other_tenants_public_share(self):
isolated_client = self.get_client_with_isolated_creds(
type_of_creds='alt')
@@ -227,7 +150,7 @@
self.share['id'],
{'key': 'value'})
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_update_metadata_of_other_tenants_public_share(self):
isolated_client = self.get_client_with_isolated_creds(
type_of_creds='alt')
@@ -236,7 +159,7 @@
self.share['id'],
{'key': 'value'})
- @test.attr(type=["gate", "smoke", "negative", ])
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND])
def test_delete_metadata_of_other_tenants_public_share(self):
isolated_client = self.get_client_with_isolated_creds(
type_of_creds='alt')
@@ -245,21 +168,101 @@
self.share['id'],
'key')
- @test.attr(type=["gate", "smoke", "negative", ])
- def test_list_by_share_server_by_user(self):
- self.assertRaises(lib_exc.Forbidden,
- self.shares_client.list_shares,
- params={'share_server_id': 12345})
- @test.attr(type=["gate", "smoke", "negative", ])
+class SharesAPIOnlyNegativeTest(base.BaseSharesTest):
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_unmanage_share_by_user(self):
+ self.assertRaises(lib_exc.Forbidden,
+ self.shares_client.unmanage_share,
+ 'fake-id')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
def test_manage_share_by_user(self):
self.assertRaises(lib_exc.Forbidden,
self.shares_client.manage_share,
'fake-host', 'nfs', '/export/path',
'fake-type')
- @test.attr(type=["gate", "smoke", "negative", ])
- def test_unmanage_share_by_user(self):
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_list_by_share_server_by_user(self):
self.assertRaises(lib_exc.Forbidden,
- self.shares_client.unmanage_share,
- 'fake-id')
+ self.shares_client.list_shares,
+ params={'share_server_id': 12345})
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_non_existent_az(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_v2_client.create_share,
+ availability_zone='fake_az')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_with_zero_size(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.shares_client.create_share, size=0)
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_with_invalid_size(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.shares_client.create_share, size="#$%")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_with_out_passing_size(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.shares_client.create_share, size="")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @testtools.skipUnless(CONF.share.run_snapshot_tests,
+ "Snapshot tests are disabled.")
+ def test_delete_snapshot_with_wrong_id(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.delete_snapshot,
+ "wrong_share_id")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ @testtools.skipUnless(CONF.share.run_snapshot_tests,
+ "Snapshot tests are disabled.")
+ def test_create_snapshot_with_wrong_id(self):
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.create_snapshot,
+ "wrong_share_id")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_with_invalid_protocol(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.shares_client.create_share,
+ share_protocol="nonexistent_protocol")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_create_share_with_wrong_public_value(self):
+ self.assertRaises(lib_exc.BadRequest,
+ self.shares_client.create_share, is_public='truebar')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_share_with_wrong_id(self):
+ self.assertRaises(lib_exc.NotFound, self.shares_client.get_share,
+ "wrong_share_id")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_get_share_without_passing_share_id(self):
+ # Should not be able to get share when empty ID is passed
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.get_share, '')
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_list_shares_nonadmin_with_nonexistent_share_server_filter(self):
+ # filtering by share server allowed only for admins by default
+ self.assertRaises(lib_exc.Forbidden,
+ self.shares_client.list_shares_with_detail,
+ {'share_server_id': 'fake_share_server_id'})
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_delete_share_with_wrong_id(self):
+ self.assertRaises(lib_exc.NotFound, self.shares_client.delete_share,
+ "wrong_share_id")
+
+ @test.attr(type=[base.TAG_NEGATIVE, base.TAG_API])
+ def test_delete_share_without_passing_share_id(self):
+ # Should not be able to delete share when empty ID is passed
+ self.assertRaises(lib_exc.NotFound,
+ self.shares_client.delete_share, '')