-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathtest_logger.py
34 lines (28 loc) · 1.14 KB
/
test_logger.py
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
"""Test xcp.logger.openLog()"""
import os
import sys
from io import StringIO
from pty import openpty
from mock import mock_open, patch
from xcp.compat import open_utf8
from xcp.logger import openLog
def test_openLog_mock_open():
"""Cover xcp.logger.openLog.open_with_codec_handling and check the arguments used for open()"""
fh = StringIO()
with patch("xcp.compat.open", mock_open()) as open_mock:
open_mock.return_value = fh
assert openLog("test.log") is True
if sys.version_info >= (3, 0):
assert open_utf8 == {"encoding": "utf-8", "errors": "replace"}
else:
assert not open_utf8
open_mock.assert_called_once_with("test.log", "a", **open_utf8)
def test_openLog_mock_stdin():
"""Cover xcp.logger.openLog calling logging.StreamHandler(h) when h is a tty"""
with patch("xcp.compat.open", mock_open()) as open_mock:
master_fd, slave_fd = openpty()
open_mock.return_value = os.fdopen(slave_fd)
assert openLog("test.log") is True
os.close(slave_fd)
os.close(master_fd)
open_mock.assert_called_once_with("test.log", "a", **open_utf8)