Merge "Cleaning up a duplicated code"
diff --git a/tempest/api/volume/test_volumes_snapshots.py b/tempest/api/volume/test_volumes_snapshots.py
index 4b97b80..1855386 100644
--- a/tempest/api/volume/test_volumes_snapshots.py
+++ b/tempest/api/volume/test_volumes_snapshots.py
@@ -130,54 +130,39 @@
         # Delete the snapshot
         self.delete_snapshot(snapshot['id'])
 
+    def _create_volume_from_snapshot(self, extra_size=0):
+        src_size = CONF.volume.volume_size
+        size = src_size + extra_size
+
+        src_vol = self.create_volume(size=src_size)
+        src_snap = self.create_snapshot(src_vol['id'])
+
+        dst_vol = self.create_volume(snapshot_id=src_snap['id'],
+                                     size=size)
+        # NOTE(zhufl): dst_vol is created based on snapshot, so dst_vol
+        # should be deleted before deleting snapshot, otherwise deleting
+        # snapshot will end with status 'error-deleting'. This depends on
+        # the implementation mechanism of vendors, generally speaking,
+        # some verdors will use "virtual disk clone" which will promote
+        # disk clone speed, and in this situation the "disk clone"
+        # is just a relationship between volume and snapshot.
+        self.addCleanup(self.delete_volume, self.volumes_client, dst_vol['id'])
+
+        volume = self.volumes_client.show_volume(dst_vol['id'])['volume']
+        # Should allow
+        self.assertEqual(volume['snapshot_id'], src_snap['id'])
+        self.assertEqual(volume['size'], size)
+
     @decorators.idempotent_id('677863d1-3142-456d-b6ac-9924f667a7f4')
     def test_volume_from_snapshot(self):
         # Creates a volume from a snapshot passing a size
         # different from the source
-        src_size = CONF.volume.volume_size
-
-        src_vol = self.create_volume(size=src_size)
-        src_snap = self.create_snapshot(src_vol['id'])
-        # Destination volume bigger than source snapshot
-        dst_vol = self.create_volume(snapshot_id=src_snap['id'],
-                                     size=src_size + 1)
-        # NOTE(zhufl): dst_vol is created based on snapshot, so dst_vol
-        # should be deleted before deleting snapshot, otherwise deleting
-        # snapshot will end with status 'error-deleting'. This depends on
-        # the implementation mechanism of vendors, generally speaking,
-        # some verdors will use "virtual disk clone" which will promote
-        # disk clone speed, and in this situation the "disk clone"
-        # is just a relationship between volume and snapshot.
-        self.addCleanup(self.delete_volume, self.volumes_client, dst_vol['id'])
-
-        volume = self.volumes_client.show_volume(dst_vol['id'])['volume']
-        # Should allow
-        self.assertEqual(volume['snapshot_id'], src_snap['id'])
-        self.assertEqual(volume['size'], src_size + 1)
+        self._create_volume_from_snapshot(extra_size=1)
 
     @decorators.idempotent_id('053d8870-8282-4fff-9dbb-99cb58bb5e0a')
     def test_volume_from_snapshot_no_size(self):
         # Creates a volume from a snapshot defaulting to original size
-        src_size = CONF.volume.volume_size
-
-        src_vol = self.create_volume(size=src_size)
-        src_snap = self.create_snapshot(src_vol['id'])
-        # Destination volume without specifying a size
-        dst_vol = self.create_volume(snapshot_id=src_snap['id'])
-
-        # NOTE(zhufl): dst_vol is created based on snapshot, so dst_vol
-        # should be deleted before deleting snapshot, otherwise deleting
-        # snapshot will end with status 'error-deleting'. This depends on
-        # the implementation mechanism of vendors, generally speaking,
-        # some verdors will use "virtual disk clone" which will promote
-        # disk clone speed, and in this situation the "disk clone"
-        # is just a relationship between volume and snapshot.
-        self.addCleanup(self.delete_volume, self.volumes_client, dst_vol['id'])
-
-        volume = self.volumes_client.show_volume(dst_vol['id'])['volume']
-        # Should allow
-        self.assertEqual(volume['snapshot_id'], src_snap['id'])
-        self.assertEqual(volume['size'], src_size)
+        self._create_volume_from_snapshot()
 
     @decorators.idempotent_id('bbcfa285-af7f-479e-8c1a-8c34fc16543c')
     @testtools.skipUnless(CONF.volume_feature_enabled.backup,