3
from landscape.monitor.rebootrequired import RebootRequired
4
from landscape.tests.helpers import LandscapeIsolatedTest
5
from landscape.tests.helpers import (
6
MakePathHelper, MonitorHelper, LogKeeperHelper)
9
class RebootRequiredTest(LandscapeIsolatedTest):
11
helpers = [MakePathHelper, MonitorHelper, LogKeeperHelper]
14
super(RebootRequiredTest, self).setUp()
15
self.reboot_required_filename = self.make_path("")
16
self.plugin = RebootRequired(self.reboot_required_filename)
17
self.monitor.add(self.plugin)
18
self.mstore.set_accepted_types(["reboot-required"])
20
def test_wb_check_reboot_required(self):
22
L{RebootRequired.check_reboot_required} should return C{True} if the
23
reboot-required flag file is present, C{False} otherwise.
25
self.assertTrue(self.plugin._check_reboot_required())
26
os.remove(self.reboot_required_filename)
27
self.assertFalse(self.plugin._check_reboot_required())
29
def test_wb_create_message(self):
31
A message should be created if and only if the reboot-required status
32
of the system has changed.
34
self.assertEquals(self.plugin._create_message(), {"flag": True})
35
self.assertEquals(self.plugin._create_message(), {})
37
def test_send_message(self):
39
A new C{"reboot-required"} message should be enqueued if and only
40
if the reboot-required status of the system has changed.
42
self.plugin.send_message()
43
self.assertIn("Queueing message with updated reboot-required status.",
44
self.logfile.getvalue())
45
self.assertMessages(self.mstore.get_pending_messages(),
46
[{"type": "reboot-required", "flag": True}])
47
self.mstore.delete_all_messages()
48
self.plugin.send_message()
49
self.assertMessages(self.mstore.get_pending_messages(), [])
53
If the server can accept them, the plugin should send
54
C{reboot-required} messages.
56
mock_plugin = self.mocker.patch(self.plugin)
57
mock_plugin.send_message()
61
self.mstore.set_accepted_types([])