~ahasenack/landscape-client/landscape-client-11.02-0ubuntu0.8.04.1

« back to all changes in this revision

Viewing changes to landscape/sysinfo/tests/test_processes.py

  • Committer: Andreas Hasenack
  • Date: 2011-05-05 14:12:15 UTC
  • Revision ID: andreas@canonical.com-20110505141215-5ymuyyh5es9pwa6p
Added hardy files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from twisted.internet.defer import Deferred
 
2
 
 
3
from landscape.sysinfo.sysinfo import SysInfoPluginRegistry
 
4
from landscape.sysinfo.processes import Processes
 
5
from landscape.tests.helpers import LandscapeTest, ProcessDataBuilder
 
6
 
 
7
 
 
8
class ProcessesTest(LandscapeTest):
 
9
 
 
10
    def setUp(self):
 
11
        super(ProcessesTest, self).setUp()
 
12
        self.fake_proc = self.makeDir()
 
13
        self.processes = Processes(proc_dir=self.fake_proc)
 
14
        self.sysinfo = SysInfoPluginRegistry()
 
15
        self.sysinfo.add(self.processes)
 
16
        self.builder = ProcessDataBuilder(self.fake_proc)
 
17
 
 
18
    def test_run_returns_succeeded_deferred(self):
 
19
        result = self.processes.run()
 
20
        self.assertTrue(isinstance(result, Deferred))
 
21
        called = []
 
22
        def callback(result):
 
23
            called.append(True)
 
24
        result.addCallback(callback)
 
25
        self.assertTrue(called)
 
26
 
 
27
    def test_number_of_processes(self):
 
28
        """The number of processes is added as a header."""
 
29
        for i in range(3):
 
30
            self.builder.create_data(i, self.builder.RUNNING, uid=0, gid=0,
 
31
                                     process_name="foo%d" % (i,))
 
32
        self.processes.run()
 
33
        self.assertEquals(self.sysinfo.get_headers(),
 
34
                          [("Processes", "3")])
 
35
 
 
36
    def test_no_zombies(self):
 
37
        self.processes.run()
 
38
        self.assertEquals(self.sysinfo.get_notes(), [])
 
39
 
 
40
    def test_number_of_zombies(self):
 
41
        """The number of zombies is added as a note."""
 
42
        self.builder.create_data(99, self.builder.ZOMBIE, uid=0, gid=0,
 
43
                                 process_name="ZOMBERS")
 
44
        self.processes.run()
 
45
        self.assertEquals(self.sysinfo.get_notes(),
 
46
                          ["There is 1 zombie process."])
 
47
 
 
48
    def test_multiple_zombies(self):
 
49
        """Stupid English, and its plurality"""
 
50
        for i in range(2):
 
51
            self.builder.create_data(i, self.builder.ZOMBIE, uid=0, gid=0,
 
52
                                     process_name="ZOMBERS%d" % (i,))
 
53
        self.processes.run()
 
54
        self.assertEquals(self.sysinfo.get_notes(),
 
55
                          ["There are 2 zombie processes."])