-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
113 lines (96 loc) · 3.89 KB
/
test.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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import unittest
from subprocess import call, check_output
from time import sleep
from click.testing import CliRunner
from jloglevel.cli import cli
class JLogLevelTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
call(["docker", "build", "test/", "-t", "jloglevel-test-app"])
cls._container_id = check_output([
"docker", "run", "-d",
"-p", "8778:8778",
"jloglevel-test-app"
]).decode('utf-8').strip()
sleep(3)
cls._runner = CliRunner()
@classmethod
def tearDownClass(cls):
call(["docker", "kill", cls._container_id])
# call(["docker", "rmi", "jloglevel-test-app", "--force"])
def test_list_loggers(self):
result = self._runner.invoke(cli,
['list-loggers', '-h', 'localhost:8778'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["http://localhost:8778/",
"ROOT",
"me",
"me.ivanyu",
"me.ivanyu.App"])
def test_get_default(self):
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger ROOT",
"http://localhost:8778/ DEBUG"])
def test_get_root(self):
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778', '--logger', 'ROOT'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger ROOT",
"http://localhost:8778/ DEBUG"])
def test_get_me_ivanyu_app(self):
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778', '--logger', 'me.ivanyu.App'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger me.ivanyu.App",
"http://localhost:8778/ --"])
def test_set_default(self):
result = self._runner.invoke(cli,
['set', 'ERROR', '-h', 'localhost:8778'])
self.assertEqual(result.exit_code, 0)
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger ROOT",
"http://localhost:8778/ ERROR"])
def test_set_root(self):
result = self._runner.invoke(cli,
['set', 'TRACE', '-h', 'localhost:8778', '--logger', 'ROOT'])
self.assertEqual(result.exit_code, 0)
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778', '--logger', 'ROOT'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger ROOT",
"http://localhost:8778/ TRACE"])
def test_set_me_ivanyu_app(self):
result = self._runner.invoke(cli,
['set', 'WARN', '-h', 'localhost:8778',
'--logger', 'me.ivanyu.App'])
self.assertEqual(result.exit_code, 0)
result = self._runner.invoke(cli,
['get', '-h', 'localhost:8778', '--logger', 'me.ivanyu.App'])
self.assertEqual(result.exit_code, 0)
lines = self._get_clean_lines_of_output(result.output)
self.assertSequenceEqual(lines,
["Logger me.ivanyu.App",
"http://localhost:8778/ WARN"])
def _get_clean_lines_of_output(self, output):
return [re.sub(r'\s+', ' ', l.strip()) for l in output.splitlines()]
if __name__ == '__main__':
unittest.main()