migrate test_bower to pytest

This commit is contained in:
Frode Gundersen 2022-11-28 22:03:01 +00:00 committed by Megan Wilhite
parent aa9059e3d7
commit 510cd8a0ac
2 changed files with 92 additions and 90 deletions

View file

@ -0,0 +1,92 @@
"""
:codeauthor: Alexander Pyatkin <asp@thexyz.net>
"""
import pytest
import salt.modules.bower as bower
from salt.exceptions import CommandExecutionError
from tests.support.mock import MagicMock, patch
@pytest.fixture
def configure_loader_modules():
return {bower: {"_check_valid_version": MagicMock(return_value=True)}}
def test_install_with_error():
"""
Test if it raises an exception when install package fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
pytest.raises(
CommandExecutionError, bower.install, "/path/to/project", "underscore"
)
def test_install_new_package():
"""
Test if it returns True when install package succeeds
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": '{"underscore":{}}'})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
assert bower.install("/path/to/project", "underscore")
def test_install_existing_package():
"""
Test if it returns False when package already installed
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": "{}"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
assert not bower.install("/path/to/project", "underscore")
def test_uninstall_with_error():
"""
Test if it raises an exception when uninstall package fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
pytest.raises(
CommandExecutionError, bower.uninstall, "/path/to/project", "underscore"
)
def test_uninstall_existing_package():
"""
Test if it returns True when uninstall package succeeds
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": '{"underscore": {}}'})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
assert bower.uninstall("/path/to/project", "underscore")
def test_uninstall_missing_package():
"""
Test if it returns False when package is not installed
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": "{}"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
assert not bower.uninstall("/path/to/project", "underscore")
def test_list_packages_with_error():
"""
Test if it raises an exception when list installed packages fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
pytest.raises(CommandExecutionError, bower.list_, "/path/to/project")
def test_list_packages_success():
"""
Test if it lists installed Bower packages
"""
output = '{"dependencies": {"underscore": {}, "jquery":{}}}'
mock = MagicMock(return_value={"retcode": 0, "stdout": output})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
assert bower.list_("/path/to/project") == {"underscore": {}, "jquery": {}}

View file

@ -1,90 +0,0 @@
"""
:codeauthor: Alexander Pyatkin <asp@thexyz.net>
"""
import salt.modules.bower as bower
from salt.exceptions import CommandExecutionError
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.mock import MagicMock, patch
from tests.support.unit import TestCase
class BowerTestCase(TestCase, LoaderModuleMockMixin):
"""
Test cases for salt.modules.bower
"""
def setup_loader_modules(self):
return {bower: {"_check_valid_version": MagicMock(return_value=True)}}
def test_install_with_error(self):
"""
Test if it raises an exception when install package fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertRaises(
CommandExecutionError, bower.install, "/path/to/project", "underscore"
)
def test_install_new_package(self):
"""
Test if it returns True when install package succeeds
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": '{"underscore":{}}'})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertTrue(bower.install("/path/to/project", "underscore"))
def test_install_existing_package(self):
"""
Test if it returns False when package already installed
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": "{}"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertFalse(bower.install("/path/to/project", "underscore"))
def test_uninstall_with_error(self):
"""
Test if it raises an exception when uninstall package fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertRaises(
CommandExecutionError, bower.uninstall, "/path/to/project", "underscore"
)
def test_uninstall_existing_package(self):
"""
Test if it returns True when uninstall package succeeds
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": '{"underscore": {}}'})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertTrue(bower.uninstall("/path/to/project", "underscore"))
def test_uninstall_missing_package(self):
"""
Test if it returns False when package is not installed
"""
mock = MagicMock(return_value={"retcode": 0, "stdout": "{}"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertFalse(bower.uninstall("/path/to/project", "underscore"))
def test_list_packages_with_error(self):
"""
Test if it raises an exception when list installed packages fails
"""
mock = MagicMock(return_value={"retcode": 1, "stderr": "error"})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertRaises(CommandExecutionError, bower.list_, "/path/to/project")
def test_list_packages_success(self):
"""
Test if it lists installed Bower packages
"""
output = '{"dependencies": {"underscore": {}, "jquery":{}}}'
mock = MagicMock(return_value={"retcode": 0, "stdout": output})
with patch.dict(bower.__salt__, {"cmd.run_all": mock}):
self.assertEqual(
bower.list_("/path/to/project"), {"underscore": {}, "jquery": {}}
)