Mercurial > hg > Lemuriformes
comparison tests/test_logging.py @ 18:56596902e9ae default tip
add some setup + tests
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 10 Dec 2017 17:57:03 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
17:4793f99b73e0 | 18:56596902e9ae |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 """ | |
4 unit-type tests for logging | |
5 """ | |
6 | |
7 import json | |
8 import os | |
9 import tempfile | |
10 import unittest | |
11 from lemuriformes.log import ElasticLogger, read_logfile | |
12 | |
13 | |
14 class TestLogging(unittest.TestCase): | |
15 """test various types of logging supported""" | |
16 | |
17 def test_log_line(self): | |
18 """test logging a single JSON line""" | |
19 | |
20 message = "I was here" | |
21 logfile = tempfile.mktemp() | |
22 | |
23 assert not os.path.exists(logfile) | |
24 logger = ElasticLogger(logfile) | |
25 logger(message) | |
26 | |
27 assert os.path.exists(logfile) | |
28 with open(logfile) as f: | |
29 data = f.read() | |
30 assert json.loads(data)['message'] == message | |
31 os.remove(logfile) | |
32 | |
33 def test_metadata(self): | |
34 """test setting global + local data on a logger""" | |
35 | |
36 message = "I was here" | |
37 logfile = tempfile.mktemp() | |
38 | |
39 assert not os.path.exists(logfile) | |
40 logger = ElasticLogger(logfile, source='truth') | |
41 logger(message, me="k0s") | |
42 logger("Hi") | |
43 logger(message, me="SomeoneElse") | |
44 | |
45 assert os.path.exists(logfile) | |
46 log_data = read_logfile(logfile) | |
47 os.remove(logfile) | |
48 assert len(log_data) == 3 | |
49 assert all([line.get('source') == 'truth' | |
50 for line in log_data]) | |
51 assert log_data[0]['message'] == message | |
52 assert log_data[-1]['message'] == message | |
53 assert log_data[0]['me'] == 'k0s' | |
54 assert log_data[-1]['me'] == 'SomeoneElse' | |
55 | |
56 | |
57 | |
58 if __name__ == '__main__': | |
59 unittest.main() |