TestPrinter   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 7
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A log_message() 0 2 1
A __init__() 0 2 1
1
import queue
2
import unittest
3
4
from coalib.misc.ContextManagers import retrieve_stdout
5
from coalib.output.printers.LogPrinter import LogPrinter
6
from coalib.processes.LogPrinterThread import LogPrinterThread
7
8
9
class TestPrinter(LogPrinter):
10
11
    def __init__(self):
12
        LogPrinter.__init__(self, self)
13
14
    def log_message(self, log_message, timestamp=None, **kwargs):
15
        print(log_message)
16
17
18
class LogPrinterThreadTest(unittest.TestCase):
19
20
    def test_run(self):
21
        log_printer = TestPrinter()
22
        log_queue = queue.Queue()
23
        self.uut = LogPrinterThread(log_queue, log_printer)
24
        log_queue.put(item="Sample message 1")
25
        log_queue.put(item="Sample message 2")
26
        log_queue.put(item="Sample message 3")
27
        self.assertEqual(self.uut.message_queue.qsize(), 3)
28
        with retrieve_stdout() as stdout:
29
            self.uut.start()
30
            while self.uut.message_queue.qsize() > 0:
31
                continue
32
            self.uut.running = False
33
            self.uut.join()
34
            self.assertEqual(stdout.getvalue(),
35
                             "Sample message 1\nSample message 2\nSample "
36
                             "message 3\n")
37