Fixes bug 972130- Testcases to CREATE, GET, DELETE, FILTER volumes

Change-Id: I9e7b9a2491d6a3f01d71551e4cadcccf154d992d
diff --git a/tempest/tests/test_volumes_get.py b/tempest/tests/test_volumes_get.py
new file mode 100644
index 0000000..e6a8944
--- /dev/null
+++ b/tempest/tests/test_volumes_get.py
@@ -0,0 +1,80 @@
+from nose.plugins.attrib import attr
+import unittest2 as unittest
+from unittest.case import SkipTest
+from tempest import openstack
+from tempest.common.utils.data_utils import rand_name
+
+
+class VolumesGetTest(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        cls.os = openstack.Manager()
+        cls.client = cls.os.volumes_client
+
+    @attr(type='smoke')
+    def test_volume_create_get_delete(self):
+        """CREATE, GET, DELETE Volume"""
+        try:
+            v_name = rand_name('Volume-')
+            metadata = {'Type': 'work'}
+            #Create volume
+            resp, volume = self.client.create_volume(size=1,
+                                                     display_name=v_name,
+                                                     metadata=metadata)
+            self.assertEqual(200, resp.status)
+            self.assertTrue('id' in volume)
+            self.assertTrue('displayName' in volume)
+            self.assertEqual(volume['displayName'], v_name,
+            "The created volume name is not equal to the requested name")
+            self.assertTrue(volume['id'] is not None,
+            "Field volume id is empty or not found.")
+            #Wait for Volume status to become ACTIVE
+            self.client.wait_for_volume_status(volume['id'], 'available')
+            #GET Volume
+            resp, fetched_volume = self.client.get_volume(volume['id'])
+            self.assertEqual(200, resp.status)
+            #Verfication of details of fetched Volume
+            self.assertEqual(v_name,
+                             fetched_volume['displayName'],
+                             'The fetched Volume is different '
+                             'from the created Volume')
+            self.assertEqual(volume['id'],
+                             fetched_volume['id'],
+                             'The fetched Volume is different '
+                             'from the created Volume')
+            self.assertEqual(metadata,
+                             fetched_volume['metadata'],
+                             'The fetched Volume is different '
+                             'from the created Volume')
+        finally:
+            #Delete the Volume created in this method
+            resp, _ = self.client.delete_volume(volume['id'])
+            self.assertEqual(202, resp.status)
+            #Checking if the deleted Volume still exists
+            resp, fetched_list = self.client.list_volumes()
+            self.assertTrue(fetched_volume not in fetched_list,
+                            'The Volume is not Deleted')
+
+    @attr(type='positive')
+    def test_volume_get_metadata_none(self):
+        """CREATE, GET empty metadata dict"""
+        try:
+            v_name = rand_name('Volume-')
+            #Create volume
+            resp, volume = self.client.create_volume(size=1,
+                                                     display_name=v_name,
+                                                     metadata={})
+            self.assertEqual(200, resp.status)
+            self.assertTrue('id' in volume)
+            self.assertTrue('displayName' in volume)
+            #Wait for Volume status to become ACTIVE
+            self.client.wait_for_volume_status(volume['id'], 'available')
+            #GET Volume
+            resp, fetched_volume = self.client.get_volume(volume['id'])
+            self.assertEqual(200, resp.status)
+            self.assertEqual(fetched_volume['metadata'], {})
+        finally:
+            #Delete the Volume created in this method
+            resp, _ = self.client.delete_volume(volume['id'])
+            self.assertEqual(202, resp.status)