~blake-rouse/maas/is-importing-2.1

« back to all changes in this revision

Viewing changes to src/provisioningserver/logger/tests/test_logger.py

  • Committer: LaMont Jones
  • Date: 2016-12-07 12:59:10 UTC
  • mfrom: (5561 2.1)
  • mto: This revision was merged to the branch mainline in revision 5563.
  • Revision ID: lamont@canonical.com-20161207125910-fow7gg8v9bo0s1iq
merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
__all__ = []
7
7
 
8
8
import pathlib
9
 
import re
10
9
import subprocess
11
10
import sys
12
11
 
14
13
from maastesting.matchers import DocTestMatches
15
14
from maastesting.testcase import MAASTestCase
16
15
from provisioningserver.logger import LoggingMode
 
16
from provisioningserver.logger.testing import find_log_lines
17
17
from provisioningserver.utils import typed
18
18
from provisioningserver.utils.shell import select_c_utf8_locale
19
19
from testtools.content import text_content
40
40
    return output.decode("utf-8")
41
41
 
42
42
 
43
 
# Matches lines like: 2016-10-18 14:23:55 [namespace#level] message
44
 
find_log_lines_re = re.compile(
45
 
    r"^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (.*?): [[](.*)[]] (.*)$",
46
 
    re.MULTILINE)
47
 
 
48
 
 
49
 
def find_log_lines(text):
50
 
    """Find logs in `text` that match `find_log_lines_re`.
51
 
 
52
 
    Checks for well-formed date/times but throws them away.
53
 
    """
54
 
    return [
55
 
        (ns, level, line) for (ts, ns, level, line) in
56
 
        find_log_lines_re.findall(text)
57
 
    ]
58
 
 
59
 
 
60
43
class TestLogging(MAASTestCase):
61
44
    """Test logging in MAAS as configured by `p.logger.configure`.
62
45
 
115
98
            ('maas.' + name, 'error', 'From `get_maas_logger`.'),
116
99
            ('stdout', 'info', 'Printing to stdout.'),
117
100
            ('stderr', 'error', 'Printing to stderr.'),
118
 
            ('__main__', 'warn', 'UserWarning: This is a warning!'),
 
101
            ('-', 'warn', 'UserWarning: This is a warning!'),
119
102
        ]
120
103
        self.assertSequenceEqual(expected, observed)
121
104
 
143
126
            ('maas.' + name, 'error', 'From `get_maas_logger`.'),
144
127
            ('stdout', 'info', 'Printing to stdout.'),
145
128
            ('stderr', 'error', 'Printing to stderr.'),
146
 
            ('__main__', 'warn', 'UserWarning: This is a warning!'),
 
129
            ('-', 'warn', 'UserWarning: This is a warning!'),
147
130
        ]
148
131
        self.assertSequenceEqual(expected, observed)
149
132
 
163
146
            ('maas.' + name, 'warn', 'From `get_maas_logger`.'),
164
147
            ('maas.' + name, 'error', 'From `get_maas_logger`.'),
165
148
            ('stderr', 'error', 'Printing to stderr.'),
166
 
            ('__main__', 'warn', 'UserWarning: This is a warning!'),
 
149
            ('-', 'warn', 'UserWarning: This is a warning!'),
167
150
        ]
168
151
        self.assertSequenceEqual(expected, observed)
169
152