Completed
Push — master ( e0da72...49d54f )
by Philip
25s
created

TestLogFormatter   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A test_json_formatter() 0 22 1
1
import json
0 ignored issues
show
Coding Style introduced by
This module should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
2
import unittest
3
from logging import INFO, LogRecord
4
5
from foil.logger import JSONFormatter
6
7
8
class TestLogFormatter(unittest.TestCase):
9
    def test_json_formatter(self):
10
        name = 'name'
11
        line = 42
12
        module = 'some_module'
13
        func = 'some_function'
14
        msg = {'content': 'sample log'}
15
16
        log_record = LogRecord(
17
            name, INFO, module, line, msg, None, None, func=func
18
        )
19
        formatter = JSONFormatter()
20
21
        log_result = formatter.format(log_record)
22
        result = json.loads(log_result)
23
24
        # check some of the fields to ensure json formatted correctly
25
        self.assertEqual(name, result['name'])
26
        self.assertEqual(line, result['lineNumber'])
27
        self.assertEqual(func, result['functionName'])
28
        self.assertEqual(module, result['module'])
29
        self.assertEqual('INFO', result['level'])
30
        self.assertEqual(msg, result['message'])
31