salt/tests/unit/states/dockerio_test.py
rallytime 4e9733ad6d Rename dockerio.py unit tests to dockerio_test.py
These tests have never run automatically because of an incorrect file name.

Added a skipIf on these tests as they are currently non-functioning and the
module they're testing has been deprecated.
2016-09-08 11:36:17 +01:00

114 lines
4.7 KiB
Python

# -*- coding: utf-8 -*-
# Import Python libs
from __future__ import absolute_import
from contextlib import contextmanager
# Import Salt Testing libs
from salttesting import skipIf, TestCase
from salttesting.mock import NO_MOCK, NO_MOCK_REASON, MagicMock
@contextmanager
def provision_state(module, fixture):
previous_dict = getattr(module, '__salt__', {}).copy()
try:
module.__dict__.setdefault('__salt__', {}).update(fixture)
yield
finally:
setattr(module, '__salt__', previous_dict)
@skipIf(NO_MOCK, NO_MOCK_REASON)
@skipIf(True, 'Skipped: This module has been deprecated.')
class DockerStateTestCase(TestCase):
def test_docker_run_success(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=0),
'docker.run_all': MagicMock(
return_value={'stdout': '.\n..\n',
'stderr': '',
'status': True,
'comment': 'Success',
'retcode': 0})}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu')
self.assertEqual(result, {'name': 'ls /',
'result': True,
'comment': 'Success',
'changes': {}})
def test_docker_run_failure(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=0),
'docker.run_all': MagicMock(
return_value={'stdout': '',
'stderr': 'Error',
'status': False,
'comment': 'Failure',
'retcode': 1})}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu')
self.assertEqual(result, {'name': 'ls /',
'result': False,
'comment': 'Failure',
'changes': {}})
def test_docker_run_onlyif(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=1),
'docker.run_all': None}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu',
onlyif='ls -l')
self.assertEqual(result, {'name': 'ls /',
'result': True,
'comment': 'onlyif execution failed',
'changes': {}})
def test_docker_run_unless(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=0),
'docker.run_all': None}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu',
unless='ls -l')
self.assertEqual(result, {'name': 'ls /',
'result': True,
'comment': 'unless execution succeeded',
'changes': {}})
def test_docker_run_docked_onlyif(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=1),
'docker.run_all': None}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu',
docked_onlyif='ls -l')
self.assertEqual(result, {'name': 'ls /',
'result': True,
'comment': 'docked_onlyif execution failed',
'changes': {}})
def test_docker_run_docked_unless(self):
from salt.states import dockerio
salt_fixture = {'docker.retcode': MagicMock(return_value=0),
'docker.run_all': None}
with provision_state(dockerio, salt_fixture):
result = dockerio.run('ls /', 'ubuntu',
docked_unless='ls -l')
self.assertEqual(result, {'name': 'ls /',
'result': True,
'comment': ('docked_unless execution'
' succeeded'),
'changes': {}})
if __name__ == '__main__':
from integration import run_tests
run_tests(DockerStateTestCase, needs_daemon=False)