1
|
|
|
import os |
2
|
|
|
import tempfile |
3
|
|
|
import unittest |
4
|
|
|
|
5
|
|
|
from coalib.output.ConfWriter import ConfWriter |
6
|
|
|
from coalib.parsing.ConfParser import ConfParser |
7
|
|
|
|
8
|
|
|
|
9
|
|
|
class ConfWriterTest(unittest.TestCase): |
|
|
|
|
10
|
|
|
example_file = ("to be ignored \n" |
11
|
|
|
" save=true\n" |
12
|
|
|
" a_default, another = val \n" |
13
|
|
|
" TEST = tobeignored # thats a comment \n" |
14
|
|
|
" test = push \n" |
15
|
|
|
" t = \n" |
16
|
|
|
" [MakeFiles] \n" |
17
|
|
|
" j , ANother = a \n" |
18
|
|
|
" multiline \n" |
19
|
|
|
" value \n" |
20
|
|
|
" ; just a omment \n" |
21
|
|
|
" ; just a omment \n" |
22
|
|
|
" key\\ space = value space\n" |
23
|
|
|
" key\\=equal = value=equal\n" |
24
|
|
|
" key\\\\backslash = value\\\\backslash\n" |
25
|
|
|
" key\\,comma = value,comma\n" |
26
|
|
|
" key\\#hash = value\\#hash\n" |
27
|
|
|
" key\\.dot = value.dot\n") |
28
|
|
|
|
29
|
|
|
def setUp(self): |
30
|
|
|
self.file = os.path.join(tempfile.gettempdir(), "ConfParserTestFile") |
31
|
|
|
with open(self.file, "w", encoding='utf-8') as file: |
|
|
|
|
32
|
|
|
file.write(self.example_file) |
33
|
|
|
|
34
|
|
|
self.conf_parser = ConfParser() |
35
|
|
|
self.write_file_name = os.path.join(tempfile.gettempdir(), |
36
|
|
|
"ConfWriterTestFile") |
37
|
|
|
self.uut = ConfWriter(self.write_file_name) |
38
|
|
|
|
39
|
|
|
def tearDown(self): |
40
|
|
|
self.uut.close() |
41
|
|
|
os.remove(self.file) |
|
|
|
|
42
|
|
|
os.remove(self.write_file_name) |
43
|
|
|
|
44
|
|
|
def test_exceptions(self): |
45
|
|
|
self.assertRaises(TypeError, self.uut.write_section, 5) |
|
|
|
|
46
|
|
|
|
47
|
|
|
def test_write(self): |
48
|
|
|
result_file = ["[Default]\n", |
49
|
|
|
"save = true\n", |
50
|
|
|
"a_default, another = val\n", |
51
|
|
|
"# thats a comment\n", |
52
|
|
|
"test = push\n", |
53
|
|
|
"t = \n", |
54
|
|
|
"\n", |
55
|
|
|
"[MakeFiles]\n", |
56
|
|
|
"j, ANother = a\n", |
57
|
|
|
"multiline\n", |
58
|
|
|
"value\n", |
59
|
|
|
"; just a omment\n", |
60
|
|
|
"; just a omment\n", |
61
|
|
|
"key\\ space = value space\n", |
62
|
|
|
"key\\=equal = value=equal\n", |
63
|
|
|
"key\\\\backslash = value\\\\backslash\n", |
64
|
|
|
"key\\,comma = value,comma\n", |
65
|
|
|
"key\\#hash = value\\#hash\n", |
66
|
|
|
"key\\.dot = value.dot\n"] |
67
|
|
|
self.uut.write_sections(self.conf_parser.parse(self.file)) |
|
|
|
|
68
|
|
|
self.uut.close() |
69
|
|
|
|
70
|
|
|
with open(self.write_file_name, "r") as f: |
|
|
|
|
71
|
|
|
lines = f.readlines() |
72
|
|
|
|
73
|
|
|
self.assertEqual(result_file, lines) |
|
|
|
|
74
|
|
|
|