File: TaskMsgTreeTest.py

package info (click to toggle)
clustershell 1.6-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 1,236 kB
  • sloc: python: 12,990; yacc: 2,844; makefile: 7
file content (114 lines) | stat: -rw-r--r-- 3,485 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env python
# ClusterShell test suite
# Written by S. Thiell 2010-02-18


"""Unit test for ClusterShell TaskMsgTree variants"""

import sys
import unittest

sys.path.insert(0, '../lib')

from ClusterShell.Task import Task, TaskMsgTreeError
from ClusterShell.Task import task_cleanup, task_self


class TaskMsgTreeTest(unittest.TestCase):
    
    def tearDown(self):
        # cleanup task_self between tests to restore defaults
        task_cleanup()

    def testEnabledMsgTree(self):
        """test TaskMsgTree enabled"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar")
        self.assert_(worker != None)
        task.set_default('stdout_msgtree', True)
        # run task
        task.resume()
        # should not raise
        for buf, keys in task.iter_buffers():
            pass

    def testDisabledMsgTree(self):
        """test TaskMsgTree disabled"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar2")
        self.assert_(worker != None)
        task.set_default('stdout_msgtree', False)
        # run task
        task.resume()
        self.assertRaises(TaskMsgTreeError, task.iter_buffers)

    def testEnabledMsgTreeStdErr(self):
        """test TaskMsgTree enabled for stderr"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar 1>&2", stderr=True)
        worker = task.shell("echo just foo bar", stderr=True)
        self.assert_(worker != None)
        task.set_default('stderr_msgtree', True)
        # run task
        task.resume()
        # should not raise:
        for buf, keys in task.iter_errors():
            pass
        # this neither:
        for buf, keys in task.iter_buffers():
            pass

    def testDisabledMsgTreeStdErr(self):
        """test TaskMsgTree disabled for stderr"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar2 1>&2", stderr=True)
        worker = task.shell("echo just foo bar2", stderr=True)
        self.assert_(worker != None)
        task.set_default('stderr_msgtree', False)
        # run task
        task.resume()
        # should not raise:
        for buf, keys in task.iter_buffers():
            pass
        # but this should:
        self.assertRaises(TaskMsgTreeError, task.iter_errors)

    def testTaskFlushBuffers(self):
        """test Task.flush_buffers"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar")
        self.assert_(worker != None)
        task.set_default('stdout_msgtree', True)
        # run task
        task.resume()
        task.flush_buffers()
        self.assertEqual(len(list(task.iter_buffers())), 0)

    def testTaskFlushErrors(self):
        """test Task.flush_errors"""
        task = task_self()
        self.assert_(task != None)
        # init worker
        worker = task.shell("echo foo bar 1>&2")
        self.assert_(worker != None)
        task.set_default('stderr_msgtree', True)
        # run task
        task.resume()
        task.flush_errors()
        self.assertEqual(len(list(task.iter_errors())), 0)


if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(TaskMsgTreeTest)
    unittest.TextTestRunner(verbosity=2).run(suite)