1
# Copyright (c) 2009 Twisted Matrix Laboratories.
2
# See LICENSE for details.
5
Tests for L{twisted.runner.procmon}.
8
from twisted.trial import unittest
9
from twisted.runner.procmon import ProcessMonitor
10
from twisted.internet import reactor
13
class ProcmonTests(unittest.TestCase):
15
Tests for L{ProcessMonitor}.
17
def test_addProcess(self):
19
L{ProcessMonitor.addProcess} starts the named program and tracks the
20
resulting process, a protocol for collecting its stdout, and the time
24
def fakeSpawnProcess(*args, **kwargs):
25
spawnedProcesses.append((args, kwargs))
26
self.patch(reactor, "spawnProcess", fakeSpawnProcess)
29
pm.addProcess("foo", ["arg1", "arg2"], uid=1, gid=2)
30
self.assertEquals(pm.processes, {"foo": (["arg1", "arg2"], 1, 2, {})})
31
self.assertEquals(pm.protocols.keys(), ["foo"])
32
lp = pm.protocols["foo"]
35
[((lp, "arg1", ["arg1", "arg2"]),
36
{"uid": 1, "gid": 2, "env": {}})])
39
def test_addProcessEnv(self):
41
L{ProcessMonitor.addProcess} takes an C{env} parameter that is passed
45
def fakeSpawnProcess(*args, **kwargs):
46
spawnedProcesses.append((args, kwargs))
47
self.patch(reactor, "spawnProcess", fakeSpawnProcess)
50
fakeEnv = {"KEY": "value"}
51
pm.addProcess("foo", ["foo"], uid=1, gid=2, env=fakeEnv)
54
[((pm.protocols["foo"], "foo", ["foo"]),
55
{"uid": 1, "gid": 2, "env": fakeEnv})])