1"""
2    :codeauthor: Jayesh Kariya <jayeshk@saltstack.com>
3"""
4
5import pytest
6import salt.states.ntp as ntp
7from tests.support.mock import MagicMock, patch
8
9
10@pytest.fixture
11def configure_loader_modules():
12    return {ntp: {}}
13
14
15def test_managed():
16    """
17    Test to manage NTP servers.
18    """
19    name = "coffee-script"
20
21    ret = {"name": name, "result": False, "comment": "", "changes": {}}
22
23    mock_lst = MagicMock(return_value=[])
24    with patch.dict(
25        ntp.__salt__, {"ntp.get_servers": mock_lst, "ntp.set_servers": mock_lst}
26    ):
27        comt = "NTP servers already configured as specified"
28        ret.update({"comment": comt, "result": True})
29        assert ntp.managed(name, []) == ret
30
31        with patch.dict(ntp.__opts__, {"test": True}):
32            comt = "NTP servers will be updated to: coffee-script"
33            ret.update({"comment": comt, "result": None})
34            assert ntp.managed(name, [name]) == ret
35
36        with patch.dict(ntp.__opts__, {"test": False}):
37            comt = "Failed to update NTP servers"
38            ret.update({"comment": comt, "result": False})
39            assert ntp.managed(name, [name]) == ret
40