diff --git a/cinder_tempest_plugin/api/volume/test_volume_revert.py b/cinder_tempest_plugin/api/volume/test_volume_revert.py
index 15e4aed..f7e9169 100644
--- a/cinder_tempest_plugin/api/volume/test_volume_revert.py
+++ b/cinder_tempest_plugin/api/volume/test_volume_revert.py
@@ -43,13 +43,14 @@
     def setUp(self):
         super(VolumeRevertTests, self).setUp()
         # Create volume
-        self.volume = self.create_volume(size=1)
+        self.volume = self.create_volume()
         # Create snapshot
         self.snapshot = self.create_snapshot(self.volume['id'])
 
     @decorators.idempotent_id('87b7dcb7-4950-4a3a-802c-ece55491846d')
     def test_volume_revert_to_snapshot(self):
         """Test revert to snapshot"""
+        expected_size = self.volume['size']
         # Revert to snapshot
         self.volume_revert_client.revert_to_snapshot(self.volume,
                                                      self.snapshot['id'])
@@ -61,13 +62,16 @@
             self.snapshot['id'], 'available')
         volume = self.volumes_client.show_volume(self.volume['id'])['volume']
 
-        self.assertEqual(1, volume['size'])
+        self.assertEqual(expected_size, volume['size'])
 
     @decorators.idempotent_id('4e8b0788-87fe-430d-be7a-444d7f8e0347')
     def test_volume_revert_to_snapshot_after_extended(self):
         """Test revert to snapshot after extended"""
+        # Extend volume to double the size
+        expected_size = self.volume['size'] * 2
         # Extend the volume
-        self.volumes_client.extend_volume(self.volume['id'], new_size=2)
+        self.volumes_client.extend_volume(self.volume['id'],
+                                          new_size=expected_size)
         waiters.wait_for_volume_resource_status(self.volumes_client,
                                                 self.volume['id'], 'available')
         # Revert to snapshot
@@ -80,4 +84,4 @@
             self.snapshots_client,
             self.snapshot['id'], 'available')
         volume = self.volumes_client.show_volume(self.volume['id'])['volume']
-        self.assertEqual(2, volume['size'])
+        self.assertEqual(expected_size, volume['size'])
diff --git a/cinder_tempest_plugin/services/volume_revert_client.py b/cinder_tempest_plugin/services/volume_revert_client.py
index 0d54701..fc9b6ad 100644
--- a/cinder_tempest_plugin/services/volume_revert_client.py
+++ b/cinder_tempest_plugin/services/volume_revert_client.py
@@ -24,6 +24,8 @@
     def __init__(self, auth_provider, service, region, **kwargs):
         super(VolumeRevertClient, self).__init__(
             auth_provider, service, region, **kwargs)
+        # revert needs v3 of the volume API
+        self.api_version = 'v3'
 
     def revert_to_snapshot(self, volume, snapshot_id):
         """Revert a volume to snapshot."""
diff --git a/requirements.txt b/requirements.txt
index 6de9f4e..6706885 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,3 +3,7 @@
 # process, which may cause wedges in the gate later.
 
 pbr!=2.1.0,>=2.0.0 # Apache-2.0
+oslo.config>=5.1.0 # Apache-2.0
+six>=1.10.0 # MIT
+oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
+tempest>=17.1.0 # Apache-2.0
