|
| 1 | +#!/usr/bin/env python |
| 2 | + |
1 | 3 | import unittest |
| 4 | +import re |
| 5 | +import six |
| 6 | +import tempfile |
| 7 | +import logging.config |
| 8 | + |
2 | 9 | from testgres import get_new_node, stop_all |
3 | 10 |
|
4 | 11 |
|
@@ -73,7 +80,50 @@ def test_users(self): |
73 | 80 | node.init().start() |
74 | 81 | node.psql('postgres', 'create role test_user login') |
75 | 82 | value = node.safe_psql('postgres', 'select 1', username='test_user') |
76 | | - self.assertEqual(value, '1\n') |
| 83 | + self.assertEqual(value, six.b('1\n')) |
| 84 | + |
| 85 | + def test_logging(self): |
| 86 | + regex = re.compile('\w+:\s{1}LOG:.*') |
| 87 | + logfile = tempfile.NamedTemporaryFile('w', delete=True) |
| 88 | + |
| 89 | + log_conf = { |
| 90 | + 'version': 1, |
| 91 | + 'handlers': { |
| 92 | + 'file': { |
| 93 | + 'class': 'logging.FileHandler', |
| 94 | + 'filename': logfile.name, |
| 95 | + 'formatter': 'base_format', |
| 96 | + 'level': logging.DEBUG, |
| 97 | + }, |
| 98 | + }, |
| 99 | + 'formatters': { |
| 100 | + 'base_format': { |
| 101 | + 'format': '%(node)-5s: %(message)s', |
| 102 | + }, |
| 103 | + }, |
| 104 | + 'root': { |
| 105 | + 'handlers': ('file', ), |
| 106 | + 'level': 'DEBUG', |
| 107 | + }, |
| 108 | + } |
| 109 | + |
| 110 | + logging.config.dictConfig(log_conf) |
| 111 | + |
| 112 | + node = get_new_node('master', use_logging=True) |
| 113 | + node1 = get_new_node('slave1', use_logging=True) |
| 114 | + node2 = get_new_node('slave2', use_logging=True) |
| 115 | + |
| 116 | + node.init().start() |
| 117 | + node1.init().start() |
| 118 | + node2.init().start() |
| 119 | + |
| 120 | + with open(logfile.name, 'r') as log: |
| 121 | + for line in log: |
| 122 | + self.assertTrue(regex.match(line)) |
| 123 | + |
| 124 | + node.stop() |
| 125 | + node1.stop() |
| 126 | + node2.stop() |
77 | 127 |
|
78 | 128 |
|
79 | 129 | if __name__ == '__main__': |
|
0 commit comments