source: tags/casa3.2.0asap/test/test_logging.py

Last change on this file was 1863, checked in by Malte Marquarding, 15 years ago

Added logger test. It is skipped under casapy as it compares stdout logs.

File size: 1.5 KB
Line 
1import sys
2import os
3from nose.tools import *
4from nose.plugins.skip import Skip, SkipTest
5from asap.logging import asaplog
6from asap.env import is_casapy
7
8if is_casapy():
9 raise SkipTest("Can't test against casalog")
10
11
12class WritableObject:
13 def __init__(self):
14 self.content = []
15
16 def write(self, string):
17 self.content.append(string)
18
19 def clear(self):
20 self.content = []
21
22stdout_redirect = WritableObject()
23
24def redirect_setup():
25 sys.stdout = stdout_redirect
26
27def redirect_teardown():
28 stdout_redirect.clear()
29 sys.stdout = sys.__stdout__
30
31@with_setup(redirect_setup, redirect_teardown)
32def test_enabled():
33 asaplog.enable()
34 msg = "TEST"
35 asaplog.push(msg)
36 asaplog.post()
37 out = "".join(stdout_redirect.content).strip()
38 assert_equals(out, msg)
39
40@with_setup(redirect_setup, redirect_teardown)
41def test_disabled():
42 asaplog.disable()
43 msg = "TEST"
44 asaplog.push(msg)
45 asaplog.post()
46 out = "".join(stdout_redirect.content).strip()
47 assert_equals(out, '')
48
49@with_setup(redirect_setup, redirect_teardown)
50def test_push():
51 asaplog.enable()
52 msg = "TEST"
53 asaplog.push(msg)
54 asaplog.push(msg)
55 asaplog.post()
56 input = "\n".join([msg]*2)
57 out = "".join(stdout_redirect.content).strip()
58 assert_equals(out, input)
59
60
61@with_setup(redirect_setup, redirect_teardown)
62def test_level():
63 asaplog.enable()
64 msg = "TEST"
65 asaplog.push(msg)
66 asaplog.post('ERROR')
67 out = "".join(stdout_redirect.content).strip()
68 assert_equals(out, "SEVERE: "+msg)
Note: See TracBrowser for help on using the repository browser.