-
Notifications
You must be signed in to change notification settings - Fork 10
/
test_reading.py
112 lines (77 loc) · 2.88 KB
/
test_reading.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
from javaproperties import loads
def test_loads_simple():
assert loads('foo=bar') == {"foo": "bar"}
def test_loads_key_only():
assert loads("foo") == {"foo": ""}
def test_loads_space_equals():
assert loads("foo =bar") == {"foo": "bar"}
def test_loads_equals_space():
assert loads("foo= bar") == {"foo": "bar"}
def test_loads_padded_equals():
assert loads("foo = bar") == {"foo": "bar"}
def test_loads_nokey():
assert loads("=bar") == {"": "bar"}
def test_loads_spacekey():
assert loads(" =bar") == {"": "bar"}
def test_loads_trailing_space():
assert loads("foo=bar ") == {"foo": "bar "}
def test_loads_leading_space():
assert loads(" foo=bar") == {"foo": "bar"}
def test_loads_space_equals_space():
assert loads(' = ') == {"": ""}
def test_loads_equals_only():
assert loads('=') == {"": ""}
def test_loads_nothing():
assert loads('') == {}
def test_loads_space():
assert loads(' ') == {}
def test_loads_linefeed():
assert loads('\n') == {}
def test_loads_crlf():
assert loads('\r\n') == {}
def test_loads_cr():
assert loads('\r') == {}
def test_loads_comment():
assert loads('#This is a comment.') == {}
def test_loads_comment_key_value():
assert loads('#This is a comment.\nkey = value') == {"key": "value"}
def test_loads_key_value_comment():
assert loads('key = value\n#This is a comment.') == {"key": "value"}
def test_loads_bang_comment():
assert loads('!This is a comment.') == {}
def test_loads_bang_comment_key_value():
assert loads('!This is a comment.\nkey = value') == {"key": "value"}
def test_loads_key_value_bang_comment():
assert loads('key = value\n!This is a comment.') == {"key": "value"}
def test_loads_continued_value():
assert loads('key = val\\\nue') == {"key": "value"}
def test_loads_continued_value_spaced():
assert loads('key = val\\\n ue') == {"key": "value"}
def test_loads_continued_key():
assert loads('ke\\\ny = value') == {"key": "value"}
def test_loads_continued_key_spaced():
assert loads('ke\\\n y = value') == {"key": "value"}
def test_loads_three_words():
assert loads('one two three') == {"one": "two three"}
def test_loads_simple_linefeed():
assert loads('foo=bar\n') == {"foo": "bar"}
def test_loads_simple_crlf():
assert loads('foo=bar\r\n') == {"foo": "bar"}
def test_loads_simple_cr():
assert loads('foo=bar\r') == {"foo": "bar"}
# multiline line continuations
# \uXXXX escape sequences
# surrogate pairs
# \n, \r, etc. escape sequences
# comment character in middle of line
# escaped space/=/: in key
# escaped non-special character
# comment after line continuation
# blank line after line continuation
# blank lines
# multiple key-value entries
# multiple key-value entries with the same key
# series of all-whitespace lines joined with line continuations
# EOF after line continuation
# CRLF
# multiple backslashes (even & odd numbers) in a row