1
from landscape.sysinfo.sysinfo import SysInfoPluginRegistry
2
from landscape.sysinfo.loggedinusers import LoggedInUsers
3
from landscape.lib.tests.test_sysstats import FakeWhoQTest
6
class LoggedInUsersTest(FakeWhoQTest):
9
super(LoggedInUsersTest, self).setUp()
10
self.logged_users = LoggedInUsers()
11
self.sysinfo = SysInfoPluginRegistry()
12
self.sysinfo.add(self.logged_users)
14
def test_run_adds_header(self):
15
self.fake_who("one two three")
16
result = self.logged_users.run()
17
def check_headers(result):
18
self.assertEquals(self.sysinfo.get_headers(),
19
[("Users logged in", "3")])
20
return result.addCallback(check_headers)
22
def test_order_is_preserved_even_if_asynchronous(self):
23
self.fake_who("one two three")
24
self.sysinfo.add_header("Before", "1")
25
result = self.logged_users.run()
26
self.sysinfo.add_header("After", "2")
27
def check_headers(result):
28
self.assertEquals(self.sysinfo.get_headers(),
30
("Users logged in", "3"),
32
return result.addCallback(check_headers)
34
def test_ignore_errors_on_command(self):
36
who = open(self.who_path, "w")
37
who.write("#!/bin/sh\necho ERROR >&2\nexit 1\n")
39
# Nothing bad should happen if who isn't installed, or
40
# if anything else happens with the command execution.
41
result = self.logged_users.run()
42
def check_headers(result):
43
self.assertEquals(self.sysinfo.get_headers(), [])
44
return result.addCallback(check_headers)