summaryrefslogtreecommitdiff
path: root/tests/test.py
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2015-08-25 16:23:12 +0100
committerAanand Prasad <aanand.prasad@gmail.com>2015-08-25 16:34:33 +0100
commitd5bcdaf2f84f397db0f67343fffa02b6bede0cb0 (patch)
tree94fe950364cf2597e82528e449e38909e2219740 /tests/test.py
parent6e27c2a3d05867464e4b886ec2da6fce981072eb (diff)
downloaddocker-py-d5bcdaf2f84f397db0f67343fffa02b6bede0cb0.tar.gz
Use pytest helpers to assert exceptions and deprecated warnings
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
Diffstat (limited to 'tests/test.py')
-rw-r--r--tests/test.py311
1 files changed, 100 insertions, 211 deletions
diff --git a/tests/test.py b/tests/test.py
index 56f2825..da4d34d 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -27,7 +27,6 @@ import tarfile
import tempfile
import threading
import time
-import warnings
import random
import docker
@@ -37,6 +36,8 @@ import six
from . import base
from . import fake_api
+import pytest
+
try:
from unittest import mock
except ImportError:
@@ -45,9 +46,6 @@ except ImportError:
DEFAULT_TIMEOUT_SECONDS = docker.client.constants.DEFAULT_TIMEOUT_SECONDS
-warnings.simplefilter('error')
-warnings.filterwarnings('error')
-
def response(status_code=200, content='', headers=None, reason=None, elapsed=0,
request=None):
@@ -137,15 +135,13 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
}
def test_ctor(self):
- try:
+ with pytest.raises(docker.errors.DockerException) as excinfo:
docker.Client(version=1.12)
- except Exception as e:
- self.assertTrue(isinstance(e, docker.errors.DockerException))
- if not six.PY3:
- self.assertEqual(
- str(e),
- 'Version parameter must be a string or None. Found float'
- )
+
+ self.assertEqual(
+ str(excinfo.value),
+ 'Version parameter must be a string or None. Found float'
+ )
#########################
# INFORMATION TESTS #
@@ -186,11 +182,9 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
)
def test_image_viz(self):
- try:
+ with pytest.raises(Exception):
self.client.images('busybox', viz=True)
self.fail('Viz output should not be supported!')
- except Exception:
- pass
def test_events(self):
self.client.events()
@@ -614,19 +608,21 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
)
def test_start_container_none(self):
- try:
+ with pytest.raises(ValueError) as excinfo:
self.client.start(container=None)
- except ValueError as e:
- self.assertEqual(str(e), 'image or container param is undefined')
- else:
- self.fail('Command should raise ValueError')
- try:
+ self.assertEqual(
+ str(excinfo.value),
+ 'image or container param is undefined',
+ )
+
+ with pytest.raises(ValueError) as excinfo:
self.client.start(None)
- except ValueError as e:
- self.assertEqual(str(e), 'image or container param is undefined')
- else:
- self.fail('Command should raise ValueError')
+
+ self.assertEqual(
+ str(excinfo.value),
+ 'image or container param is undefined',
+ )
def test_start_container_regression_573(self):
self.client.start(**{'container': fake_api.FAKE_CONTAINER_ID})
@@ -764,7 +760,7 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
)
def test_create_container_with_binds_mode_and_ro_error(self):
- try:
+ with pytest.raises(ValueError):
mount_dest = '/mnt'
mount_origin = '/tmp'
self.client.create_container(
@@ -776,10 +772,6 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
}}
)
)
- except ValueError:
- return
-
- self.fail('Command should raise ValueError')
def test_create_container_with_binds_list(self):
self.client.create_container(
@@ -961,192 +953,93 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
)
def test_start_container_with_lxc_conf(self):
- if six.PY2:
- try:
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- lxc_conf={'lxc.conf.k': 'lxc.conf.value'}
- )
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- lxc_conf={'lxc.conf.k': 'lxc.conf.value'}
- )
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID,
+ lxc_conf={'lxc.conf.k': 'lxc.conf.value'}
+ )
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_lxc_conf_compat(self):
- if six.PY2:
- try:
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- lxc_conf=[{'Key': 'lxc.conf.k', 'Value': 'lxc.conf.value'}]
- )
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- lxc_conf=[{'Key': 'lxc.conf.k', 'Value': 'lxc.conf.value'}]
- )
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID,
+ lxc_conf=[{'Key': 'lxc.conf.k', 'Value': 'lxc.conf.value'}]
+ )
- def test_start_container_with_binds_ro(self):
- mount_dest = '/mnt'
- mount_origin = '/tmp'
+ pytest.deprecated_call(call_start)
- if six.PY2:
- try:
- self.client.start(
- fake_api.FAKE_CONTAINER_ID, binds={
- mount_origin: {
- "bind": mount_dest,
- "ro": True
- }
- }
- )
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID, binds={
- mount_origin: {
- "bind": mount_dest,
- "ro": True
- }
+ def test_start_container_with_binds_ro(self):
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID, binds={
+ '/tmp': {
+ "bind": '/mnt',
+ "ro": True
}
- )
+ }
+ )
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_binds_rw(self):
- mount_dest = '/mnt'
- mount_origin = '/tmp'
- if six.PY2:
- try:
- self.client.start(
- fake_api.FAKE_CONTAINER_ID, binds={
- mount_origin: {"bind": mount_dest, "ro": False}
- }
- )
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID, binds={
- mount_origin: {"bind": mount_dest, "ro": False}
- }
- )
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID, binds={
+ '/tmp': {"bind": '/mnt', "ro": False}
+ }
+ )
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_port_binds(self):
self.maxDiff = None
- if six.PY2:
- try:
- self.client.start(fake_api.FAKE_CONTAINER_ID, port_bindings={
- 1111: None,
- 2222: 2222,
- '3333/udp': (3333,),
- 4444: ('127.0.0.1',),
- 5555: ('127.0.0.1', 5555),
- 6666: [('127.0.0.1',), ('192.168.0.1',)]
- })
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(fake_api.FAKE_CONTAINER_ID, port_bindings={
- 1111: None,
- 2222: 2222,
- '3333/udp': (3333,),
- 4444: ('127.0.0.1',),
- 5555: ('127.0.0.1', 5555),
- 6666: [('127.0.0.1',), ('192.168.0.1',)]
- })
+
+ def call_start():
+ self.client.start(fake_api.FAKE_CONTAINER_ID, port_bindings={
+ 1111: None,
+ 2222: 2222,
+ '3333/udp': (3333,),
+ 4444: ('127.0.0.1',),
+ 5555: ('127.0.0.1', 5555),
+ 6666: [('127.0.0.1',), ('192.168.0.1',)]
+ })
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_links(self):
- # one link
- link_path = 'path'
- alias = 'alias'
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID, links={'path': 'alias'}
+ )
- if six.PY2:
- try:
- self.client.start(fake_api.FAKE_CONTAINER_ID,
- links={link_path: alias})
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID, links={link_path: alias}
- )
+ pytest.deprecated_call(call_start)
def test_start_container_with_multiple_links(self):
- link_path = 'path'
- alias = 'alias'
- if six.PY2:
- try:
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- links={
- link_path + '1': alias + '1',
- link_path + '2': alias + '2'
- }
- )
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(
- fake_api.FAKE_CONTAINER_ID,
- links={
- link_path + '1': alias + '1',
- link_path + '2': alias + '2'
- }
- )
+ def call_start():
+ self.client.start(
+ fake_api.FAKE_CONTAINER_ID,
+ links={
+ 'path1': 'alias1',
+ 'path2': 'alias2'
+ }
+ )
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_links_as_list_of_tuples(self):
- # one link
- link_path = 'path'
- alias = 'alias'
- if six.PY2:
- try:
- self.client.start(fake_api.FAKE_CONTAINER_ID,
- links=[(link_path, alias)])
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(fake_api.FAKE_CONTAINER_ID,
- links=[(link_path, alias)])
+ def call_start():
+ self.client.start(fake_api.FAKE_CONTAINER_ID,
+ links=[('path', 'alias')])
+
+ pytest.deprecated_call(call_start)
def test_start_container_privileged(self):
- if six.PY2:
- try:
- self.client.start(fake_api.FAKE_CONTAINER_ID, privileged=True)
- except DeprecationWarning:
- return
- else:
- self.fail('Expected a DeprecationWarning')
- else:
- with self.assertWarns(DeprecationWarning):
- self.client.start(fake_api.FAKE_CONTAINER_ID, privileged=True)
+ def call_start():
+ self.client.start(fake_api.FAKE_CONTAINER_ID, privileged=True)
+
+ pytest.deprecated_call(call_start)
def test_start_container_with_dict_instead_of_id(self):
self.client.start({'Id': fake_api.FAKE_CONTAINER_ID})
@@ -1715,14 +1608,12 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
def test_inspect_container_undefined_id(self):
for arg in None, '', {True: True}:
- try:
+ with pytest.raises(docker.errors.NullResource) as excinfo:
self.client.inspect_container(arg)
- except docker.errors.NullResource as e:
- self.assertEqual(
- e.args[0], 'image or container param is undefined'
- )
- else:
- self.fail('Command expected NullResource exception')
+
+ self.assertEqual(
+ excinfo.value.args[0], 'image or container param is undefined'
+ )
def test_container_stats(self):
self.client.stats(fake_api.FAKE_CONTAINER_ID)
@@ -1868,14 +1759,12 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
def test_inspect_image_undefined_id(self):
for arg in None, '', {True: True}:
- try:
+ with pytest.raises(docker.errors.NullResource) as excinfo:
self.client.inspect_image(arg)
- except docker.errors.NullResource as e:
- self.assertEqual(
- e.args[0], 'image or container param is undefined'
- )
- else:
- self.fail('Command expected NullResource exception')
+
+ self.assertEqual(
+ excinfo.value.args[0], 'image or container param is undefined'
+ )
def test_insert_image(self):
try: