File: test_simple.py

package info (click to toggle)
python-prettylog 0.1.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 120 kB
  • sloc: python: 230; makefile: 7
file content (82 lines) | stat: -rw-r--r-- 1,786 bytes parent folder | download | duplicates (3)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import json
import logging
import uuid

import pytest
from prettylog import basic_config, LogFormat, create_logging_handler


def test_choices():
    choices = LogFormat.choices()
    assert isinstance(choices, tuple)

    for i in ('stream', 'color', 'json', 'syslog'):
        assert i in choices


def test_configure_logging_json(capsys):
    capsys.readouterr()

    data = str(uuid.uuid4())

    basic_config(level='debug', log_format='json', buffered=False)
    logging.info(data)

    stdout, stderr = capsys.readouterr()

    json_result = json.loads(stdout.strip())
    assert json_result['msg'] == data

    logging.basicConfig(handlers=[], level=logging.INFO)


def test_configure_logging_stderr(capsys):
    data = str(uuid.uuid4())

    basic_config(level=logging.DEBUG, log_format='stream', buffered=False)

    logging.info(data)

    stdout, stderr = capsys.readouterr()

    assert data in stderr

    logging.basicConfig(handlers=[])


@pytest.mark.parametrize('fmt', LogFormat.choices())
def test_formats(fmt):
    basic_config(level='debug', log_format=fmt, buffered=False)

    logging.error("test")
    logging.info("foo %r", None)
    logging.debug({"foo": [None, 1]})

    try:
        raise Exception
    except:
        logging.exception("Error")


def test_invalid_handler():
    with pytest.raises(NotImplementedError):
        create_logging_handler('example.com')


def test_buferred(capsys):
    capsys.readouterr()

    data = str(uuid.uuid4())

    basic_config(level='debug', log_format='json',
                 buffered=True, buffer_size=10)

    logging.info("0 %r", data)
    stdout, stderr = capsys.readouterr()
    assert not stdout

    logging.getLogger().handlers[0].flush()

    stdout, stderr = capsys.readouterr()

    assert data in stdout