summaryrefslogtreecommitdiff
path: root/tests/unit/volume_test.py
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2015-09-23 17:42:29 -0700
committerJoffrey F <joffrey@docker.com>2015-10-21 16:02:09 -0700
commit93a296fb0448d9fccdf9f40f7a9996f49ea22c48 (patch)
tree633371cbdf88435664b530c4ca835c4929d92274 /tests/unit/volume_test.py
parent5a1c7ed8bf0ac9a3914de7c80c1c29c13f6a62ea (diff)
downloaddocker-py-reorganize_tests.tar.gz
Reorganize test directoriesreorganize_tests
More clearly separate unit and integration tests Allow splitting into multiple files Cleaner Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'tests/unit/volume_test.py')
-rw-r--r--tests/unit/volume_test.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/unit/volume_test.py b/tests/unit/volume_test.py
new file mode 100644
index 0000000..4c2f877
--- /dev/null
+++ b/tests/unit/volume_test.py
@@ -0,0 +1,85 @@
+import json
+
+import pytest
+
+from .. import base
+from .api_test import DockerClientTest, url_prefix, fake_request
+
+
+class VolumeTest(DockerClientTest):
+ @base.requires_api_version('1.21')
+ def test_list_volumes(self):
+ volumes = self.client.volumes()
+ self.assertIn('Volumes', volumes)
+ self.assertEqual(len(volumes['Volumes']), 2)
+ args = fake_request.call_args
+
+ self.assertEqual(args[0][0], 'GET')
+ self.assertEqual(args[0][1], url_prefix + 'volumes')
+
+ @base.requires_api_version('1.21')
+ def test_create_volume(self):
+ name = 'perfectcherryblossom'
+ result = self.client.create_volume(name)
+ self.assertIn('Name', result)
+ self.assertEqual(result['Name'], name)
+ self.assertIn('Driver', result)
+ self.assertEqual(result['Driver'], 'local')
+ args = fake_request.call_args
+
+ self.assertEqual(args[0][0], 'POST')
+ self.assertEqual(args[0][1], url_prefix + 'volumes/create')
+ self.assertEqual(json.loads(args[1]['data']), {'Name': name})
+
+ @base.requires_api_version('1.21')
+ def test_create_volume_with_driver(self):
+ name = 'perfectcherryblossom'
+ driver_name = 'sshfs'
+ self.client.create_volume(name, driver=driver_name)
+ args = fake_request.call_args
+
+ self.assertEqual(args[0][0], 'POST')
+ self.assertEqual(args[0][1], url_prefix + 'volumes/create')
+ data = json.loads(args[1]['data'])
+ self.assertIn('Driver', data)
+ self.assertEqual(data['Driver'], driver_name)
+
+ @base.requires_api_version('1.21')
+ def test_create_volume_invalid_opts_type(self):
+ with pytest.raises(TypeError):
+ self.client.create_volume(
+ 'perfectcherryblossom', driver_opts='hello=world'
+ )
+
+ with pytest.raises(TypeError):
+ self.client.create_volume(
+ 'perfectcherryblossom', driver_opts=['hello=world']
+ )
+
+ with pytest.raises(TypeError):
+ self.client.create_volume(
+ 'perfectcherryblossom', driver_opts=''
+ )
+
+ @base.requires_api_version('1.21')
+ def test_inspect_volume(self):
+ name = 'perfectcherryblossom'
+ result = self.client.inspect_volume(name)
+ self.assertIn('Name', result)
+ self.assertEqual(result['Name'], name)
+ self.assertIn('Driver', result)
+ self.assertEqual(result['Driver'], 'local')
+ args = fake_request.call_args
+
+ self.assertEqual(args[0][0], 'GET')
+ self.assertEqual(args[0][1], '{0}volumes/{1}'.format(url_prefix, name))
+
+ @base.requires_api_version('1.21')
+ def test_remove_volume(self):
+ name = 'perfectcherryblossom'
+ result = self.client.remove_volume(name)
+ self.assertTrue(result)
+ args = fake_request.call_args
+
+ self.assertEqual(args[0][0], 'DELETE')
+ self.assertEqual(args[0][1], '{0}volumes/{1}'.format(url_prefix, name))