Merge "Fix manage tempest test validation"
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 a9ad4a6..80c2982 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_manage.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_manage.py
@@ -157,44 +157,43 @@
         self._test_manage(share=self.shares[0])
 
     @test.attr(type=["gate", "smoke", "negative", ])
-    def test_manage_with_type_invalid(self):
-        # Manage share with invalid type
+    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
+        # case failed. Then, in order to remove the resource from backend, we
+        # need to manage it again, properly, so we can delete it. Consequently
+        # the second part of this test also tests that manage operation with a
+        # proper share type works.
+
+        def _delete_share(share_id):
+            self.shares_v2_client.reset_state(share_id)
+            self.shares_v2_client.delete_share(share_id)
+            self.shares_v2_client.wait_for_resource_deletion(share_id=share_id)
+            self.assertRaises(lib_exc.NotFound,
+                              self.shares_v2_client.get_share,
+                              share_id)
 
         share = self.shares_v2_client.manage_share(
             service_host=self.shares[1]['host'],
             export_path=self.shares[1]['export_locations'][0],
             protocol=self.shares[1]['share_proto'],
             share_type_id=self.st_invalid['share_type']['id'])
+        self.addCleanup(_delete_share, share['id'])
 
-        # Wait for failure
-        self.shares_v2_client.wait_for_share_status(share['id'],
-                                                    'manage_error')
+        self.shares_v2_client.wait_for_share_status(
+            share['id'], 'manage_error')
 
-        # Delete share
-        self.shares_v2_client.reset_state(share['id'])
-        self.shares_v2_client.delete_share(share['id'])
-        self.shares_v2_client.wait_for_resource_deletion(share_id=share['id'])
-        self.assertRaises(lib_exc.NotFound, self.shares_v2_client.get_share,
-                          share['id'])
-
-    @test.attr(type=["gate", "smoke", ])
-    def test_manage_with_type(self):
-        # Manage share with type
-
+        # Delete resource from backend. We need to manage the share properly
+        # so it can be removed.
         share = self.shares_v2_client.manage_share(
             service_host=self.shares[1]['host'],
             export_path=self.shares[1]['export_locations'][0],
             protocol=self.shares[1]['share_proto'],
             share_type_id=self.st['share_type']['id'])
+        self.addCleanup(_delete_share, share['id'])
 
-        # Wait for success
-        self.shares_v2_client.wait_for_share_status(share['id'], 'available')
-
-        # Delete share
-        self.shares_v2_client.delete_share(share['id'])
-        self.shares_v2_client.wait_for_resource_deletion(share_id=share['id'])
-        self.assertRaises(lib_exc.NotFound, self.shares_v2_client.get_share,
-                          share['id'])
+        self.shares_v2_client.wait_for_share_status(
+            share['id'], 'available')
 
 
 class ManageCIFSShareTest(ManageNFSShareTest):