migrate test_composer to pytest

This commit is contained in:
Frode Gundersen 2022-11-29 16:24:59 +00:00 committed by Megan Wilhite
parent 510cd8a0ac
commit 841584c866
2 changed files with 186 additions and 193 deletions

View file

@ -0,0 +1,186 @@
"""
:codeauthor: Rupesh Tare <rupesht@saltstack.com>
"""
import pytest
import salt.modules.composer as composer
from salt.exceptions import (
CommandExecutionError,
CommandNotFoundError,
SaltInvocationError,
)
from tests.support.mock import MagicMock, patch
@pytest.fixture
def configure_loader_modules():
return {composer: {}}
def test_install():
"""
Test for Install composer dependencies for a directory.
"""
# Test _valid_composer=False throws exception
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
pytest.raises(CommandNotFoundError, composer.install, "d")
# Test no directory specified throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
pytest.raises(SaltInvocationError, composer.install, None)
# Test `composer install` exit status != 0 throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
pytest.raises(CommandExecutionError, composer.install, "d")
# Test success with quiet=True returns True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.install(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
# Test success with quiet=False returns object
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.install("dir") == rval
def test_update():
"""
Test for Update composer dependencies for a directory.
"""
# Test _valid_composer=False throws exception
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
pytest.raises(CommandNotFoundError, composer.update, "d")
# Test no directory specified throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
pytest.raises(SaltInvocationError, composer.update, None)
# Test update with error exit status throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
pytest.raises(CommandExecutionError, composer.update, "d")
# Test update with existing vendor directory and quiet=True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.update(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
# Test update with no vendor directory and quiet=True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=False)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.update(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
# Test update with existing vendor directory
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.update("dir") == rval
# Test update with no vendor directory
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=False)
with patch.object(composer, "did_composer_install", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.update("dir") == rval
def test_selfupdate():
"""
Test for Composer selfupdate
"""
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
pytest.raises(CommandNotFoundError, composer.selfupdate)
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
pytest.raises(CommandExecutionError, composer.selfupdate)
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.selfupdate(quiet=True)
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
assert composer.selfupdate() == rval

View file

@ -1,193 +0,0 @@
"""
:codeauthor: Rupesh Tare <rupesht@saltstack.com>
"""
import salt.modules.composer as composer
from salt.exceptions import (
CommandExecutionError,
CommandNotFoundError,
SaltInvocationError,
)
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.mock import MagicMock, patch
from tests.support.unit import TestCase
class ComposerTestCase(TestCase, LoaderModuleMockMixin):
"""
Test cases for salt.modules.composer
"""
def setup_loader_modules(self):
return {composer: {}}
def test_install(self):
"""
Test for Install composer dependencies for a directory.
"""
# Test _valid_composer=False throws exception
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
self.assertRaises(CommandNotFoundError, composer.install, "d")
# Test no directory specified throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
self.assertRaises(SaltInvocationError, composer.install, None)
# Test `composer install` exit status != 0 throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertRaises(CommandExecutionError, composer.install, "d")
# Test success with quiet=True returns True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertTrue(
composer.install(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
)
# Test success with quiet=False returns object
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertEqual(composer.install("dir"), rval)
def test_update(self):
"""
Test for Update composer dependencies for a directory.
"""
# Test _valid_composer=False throws exception
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
self.assertRaises(CommandNotFoundError, composer.update, "d")
# Test no directory specified throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
self.assertRaises(SaltInvocationError, composer.update, None)
# Test update with error exit status throws exception
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertRaises(CommandExecutionError, composer.update, "d")
# Test update with existing vendor directory and quiet=True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertTrue(
composer.update(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
)
# Test update with no vendor directory and quiet=True
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=False)
with patch.object(composer, "did_composer_install", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertTrue(
composer.update(
"dir",
None,
None,
None,
None,
None,
None,
None,
None,
None,
True,
)
)
# Test update with existing vendor directory
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=True)
with patch.object(composer, "did_composer_install", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertEqual(composer.update("dir"), rval)
# Test update with no vendor directory
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value=False)
with patch.object(composer, "did_composer_install", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertEqual(composer.update("dir"), rval)
def test_selfupdate(self):
"""
Test for Composer selfupdate
"""
mock = MagicMock(return_value=False)
with patch.object(composer, "_valid_composer", mock):
self.assertRaises(CommandNotFoundError, composer.selfupdate)
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 1, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertRaises(CommandExecutionError, composer.selfupdate)
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
mock = MagicMock(return_value={"retcode": 0, "stderr": "A"})
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertTrue(composer.selfupdate(quiet=True))
mock = MagicMock(return_value=True)
with patch.object(composer, "_valid_composer", mock):
rval = {"retcode": 0, "stderr": "A", "stdout": "B"}
mock = MagicMock(return_value=rval)
with patch.dict(composer.__salt__, {"cmd.run_all": mock}):
self.assertEqual(composer.selfupdate(), rval)