1""" 2 :codeauthor: Jayesh Kariya <jayeshk@saltstack.com> 3""" 4 5import pytest 6import salt.states.powerpath as powerpath 7from tests.support.mock import MagicMock, patch 8 9 10@pytest.fixture 11def configure_loader_modules(): 12 return {powerpath: {}} 13 14 15def test_license_present(): 16 """ 17 Test to ensures that the specified PowerPath license key is present 18 on the host. 19 """ 20 name = "mylic" 21 22 ret = {"name": name, "changes": {}, "result": True, "comment": ""} 23 24 mock_t = MagicMock( 25 side_effect=[ 26 {"result": True, "output": name}, 27 {"result": False, "output": name}, 28 ] 29 ) 30 mock = MagicMock(side_effect=[False, True, True, True, True]) 31 mock_l = MagicMock(return_value=[{"key": name}]) 32 with patch.dict( 33 powerpath.__salt__, 34 { 35 "powerpath.has_powerpath": mock, 36 "powerpath.list_licenses": mock_l, 37 "powerpath.add_license": mock_t, 38 }, 39 ): 40 comt = "PowerPath is not installed." 41 ret.update({"comment": comt, "result": False}) 42 assert powerpath.license_present(name) == ret 43 44 comt = "License key {} already present".format(name) 45 ret.update({"comment": comt, "result": True}) 46 assert powerpath.license_present(name) == ret 47 48 with patch.dict(powerpath.__opts__, {"test": True}): 49 comt = "License key Mylic is set to be added" 50 ret.update({"comment": comt, "result": None, "name": "Mylic"}) 51 assert powerpath.license_present("Mylic") == ret 52 53 with patch.dict(powerpath.__opts__, {"test": False}): 54 ret.update({"comment": name, "result": True, "changes": {"Mylic": "added"}}) 55 assert powerpath.license_present("Mylic") == ret 56 57 ret.update({"result": False, "changes": {}}) 58 assert powerpath.license_present("Mylic") == ret 59 60 61def test_license_absent(): 62 """ 63 Test to ensures that the specified PowerPath license key is absent 64 on the host. 65 """ 66 name = "mylic" 67 68 ret = {"name": name, "changes": {}, "result": True, "comment": ""} 69 70 mock_t = MagicMock( 71 side_effect=[ 72 {"result": True, "output": name}, 73 {"result": False, "output": name}, 74 ] 75 ) 76 mock = MagicMock(side_effect=[False, True, True, True, True]) 77 mock_l = MagicMock(return_value=[{"key": "salt"}]) 78 with patch.dict( 79 powerpath.__salt__, 80 { 81 "powerpath.has_powerpath": mock, 82 "powerpath.list_licenses": mock_l, 83 "powerpath.remove_license": mock_t, 84 }, 85 ): 86 comt = "PowerPath is not installed." 87 ret.update({"comment": comt, "result": False}) 88 assert powerpath.license_absent(name) == ret 89 90 comt = "License key {} not present".format(name) 91 ret.update({"comment": comt, "result": True}) 92 assert powerpath.license_absent(name) == ret 93 94 with patch.dict(powerpath.__opts__, {"test": True}): 95 comt = "License key salt is set to be removed" 96 ret.update({"comment": comt, "result": None, "name": "salt"}) 97 assert powerpath.license_absent("salt") == ret 98 99 with patch.dict(powerpath.__opts__, {"test": False}): 100 ret.update( 101 {"comment": name, "result": True, "changes": {"salt": "removed"}} 102 ) 103 assert powerpath.license_absent("salt") == ret 104 105 ret.update({"result": False, "changes": {}}) 106 assert powerpath.license_absent("salt") == ret 107