|
2 | 2 | import pytest |
3 | 3 |
|
4 | 4 | from dotenv.compat import StringIO |
5 | | -from dotenv.parser import Binding, parse_stream |
| 5 | +from dotenv.parser import Binding, Original, parse_stream |
6 | 6 |
|
7 | 7 |
|
8 | 8 | @pytest.mark.parametrize("test_input,expected", [ |
9 | 9 | (u"", []), |
10 | | - (u"a=b", [Binding(key=u"a", value=u"b", original=u"a=b")]), |
11 | | - (u"'a'=b", [Binding(key=u"a", value=u"b", original=u"'a'=b")]), |
12 | | - (u"[=b", [Binding(key=u"[", value=u"b", original=u"[=b")]), |
13 | | - (u" a = b ", [Binding(key=u"a", value=u"b", original=u" a = b ")]), |
14 | | - (u"export a=b", [Binding(key=u"a", value=u"b", original=u"export a=b")]), |
15 | | - (u" export 'a'=b", [Binding(key=u"a", value=u"b", original=u" export 'a'=b")]), |
16 | | - (u"# a=b", [Binding(key=None, value=None, original=u"# a=b")]), |
17 | | - (u"a=b#c", [Binding(key=u"a", value=u"b#c", original=u"a=b#c")]), |
18 | | - (u'a=b # comment', [Binding(key=u"a", value=u"b", original=u"a=b # comment")]), |
19 | | - (u"a=b space ", [Binding(key=u"a", value=u"b space", original=u"a=b space ")]), |
20 | | - (u"a='b space '", [Binding(key=u"a", value=u"b space ", original=u"a='b space '")]), |
21 | | - (u'a="b space "', [Binding(key=u"a", value=u"b space ", original=u'a="b space "')]), |
22 | | - (u"export export_a=1", [Binding(key=u"export_a", value=u"1", original=u"export export_a=1")]), |
23 | | - (u"export port=8000", [Binding(key=u"port", value=u"8000", original=u"export port=8000")]), |
24 | | - (u'a="b\nc"', [Binding(key=u"a", value=u"b\nc", original=u'a="b\nc"')]), |
25 | | - (u"a='b\nc'", [Binding(key=u"a", value=u"b\nc", original=u"a='b\nc'")]), |
26 | | - (u'a="b\nc"', [Binding(key=u"a", value=u"b\nc", original=u'a="b\nc"')]), |
27 | | - (u'a="b\\nc"', [Binding(key=u"a", value=u'b\nc', original=u'a="b\\nc"')]), |
28 | | - (u"a='b\\nc'", [Binding(key=u"a", value=u'b\\nc', original=u"a='b\\nc'")]), |
29 | | - (u'a="b\\"c"', [Binding(key=u"a", value=u'b"c', original=u'a="b\\"c"')]), |
30 | | - (u"a='b\\'c'", [Binding(key=u"a", value=u"b'c", original=u"a='b\\'c'")]), |
31 | | - (u"a=à", [Binding(key=u"a", value=u"à", original=u"a=à")]), |
32 | | - (u'a="à"', [Binding(key=u"a", value=u"à", original=u'a="à"')]), |
33 | | - (u'garbage', [Binding(key=None, value=None, original=u"garbage")]), |
| 10 | + (u"a=b", [Binding(key=u"a", value=u"b", original=Original(string=u"a=b", line=1))]), |
| 11 | + (u"'a'=b", [Binding(key=u"a", value=u"b", original=Original(string=u"'a'=b", line=1))]), |
| 12 | + (u"[=b", [Binding(key=u"[", value=u"b", original=Original(string=u"[=b", line=1))]), |
| 13 | + (u" a = b ", [Binding(key=u"a", value=u"b", original=Original(string=u" a = b ", line=1))]), |
| 14 | + (u"export a=b", [Binding(key=u"a", value=u"b", original=Original(string=u"export a=b", line=1))]), |
| 15 | + (u" export 'a'=b", [Binding(key=u"a", value=u"b", original=Original(string=u" export 'a'=b", line=1))]), |
| 16 | + (u"# a=b", [Binding(key=None, value=None, original=Original(string=u"# a=b", line=1))]), |
| 17 | + (u"a=b#c", [Binding(key=u"a", value=u"b#c", original=Original(string=u"a=b#c", line=1))]), |
| 18 | + (u'a=b # comment', [Binding(key=u"a", value=u"b", original=Original(string=u"a=b # comment", line=1))]), |
| 19 | + (u"a=b space ", [Binding(key=u"a", value=u"b space", original=Original(string=u"a=b space ", line=1))]), |
| 20 | + (u"a='b space '", [Binding(key=u"a", value=u"b space ", original=Original(string=u"a='b space '", line=1))]), |
| 21 | + (u'a="b space "', [Binding(key=u"a", value=u"b space ", original=Original(string=u'a="b space "', line=1))]), |
| 22 | + ( |
| 23 | + u"export export_a=1", |
| 24 | + [ |
| 25 | + Binding(key=u"export_a", value=u"1", original=Original(string=u"export export_a=1", line=1)) |
| 26 | + ], |
| 27 | + ), |
| 28 | + (u"export port=8000", [Binding(key=u"port", value=u"8000", original=Original(string=u"export port=8000", line=1))]), |
| 29 | + (u'a="b\nc"', [Binding(key=u"a", value=u"b\nc", original=Original(string=u'a="b\nc"', line=1))]), |
| 30 | + (u"a='b\nc'", [Binding(key=u"a", value=u"b\nc", original=Original(string=u"a='b\nc'", line=1))]), |
| 31 | + (u'a="b\nc"', [Binding(key=u"a", value=u"b\nc", original=Original(string=u'a="b\nc"', line=1))]), |
| 32 | + (u'a="b\\nc"', [Binding(key=u"a", value=u'b\nc', original=Original(string=u'a="b\\nc"', line=1))]), |
| 33 | + (u"a='b\\nc'", [Binding(key=u"a", value=u'b\\nc', original=Original(string=u"a='b\\nc'", line=1))]), |
| 34 | + (u'a="b\\"c"', [Binding(key=u"a", value=u'b"c', original=Original(string=u'a="b\\"c"', line=1))]), |
| 35 | + (u"a='b\\'c'", [Binding(key=u"a", value=u"b'c", original=Original(string=u"a='b\\'c'", line=1))]), |
| 36 | + (u"a=à", [Binding(key=u"a", value=u"à", original=Original(string=u"a=à", line=1))]), |
| 37 | + (u'a="à"', [Binding(key=u"a", value=u"à", original=Original(string=u'a="à"', line=1))]), |
| 38 | + (u'garbage', [Binding(key=None, value=None, original=Original(string=u"garbage", line=1))]), |
34 | 39 | ( |
35 | 40 | u"a=b\nc=d", |
36 | 41 | [ |
37 | | - Binding(key=u"a", value=u"b", original=u"a=b\n"), |
38 | | - Binding(key=u"c", value=u"d", original=u"c=d"), |
| 42 | + Binding(key=u"a", value=u"b", original=Original(string=u"a=b\n", line=1)), |
| 43 | + Binding(key=u"c", value=u"d", original=Original(string=u"c=d", line=2)), |
| 44 | + ], |
| 45 | + ), |
| 46 | + ( |
| 47 | + u"a=b\rc=d", |
| 48 | + [ |
| 49 | + Binding(key=u"a", value=u"b", original=Original(string=u"a=b\r", line=1)), |
| 50 | + Binding(key=u"c", value=u"d", original=Original(string=u"c=d", line=2)), |
39 | 51 | ], |
40 | 52 | ), |
41 | 53 | ( |
42 | 54 | u"a=b\r\nc=d", |
43 | 55 | [ |
44 | | - Binding(key=u"a", value=u"b", original=u"a=b\r\n"), |
45 | | - Binding(key=u"c", value=u"d", original=u"c=d"), |
| 56 | + Binding(key=u"a", value=u"b", original=Original(string=u"a=b\r\n", line=1)), |
| 57 | + Binding(key=u"c", value=u"d", original=Original(string=u"c=d", line=2)), |
46 | 58 | ], |
47 | 59 | ), |
48 | 60 | ( |
49 | 61 | u'a=\nb=c', |
50 | 62 | [ |
51 | | - Binding(key=u"a", value=u'', original=u'a=\n'), |
52 | | - Binding(key=u"b", value=u'c', original=u"b=c"), |
| 63 | + Binding(key=u"a", value=u'', original=Original(string=u'a=\n', line=1)), |
| 64 | + Binding(key=u"b", value=u'c', original=Original(string=u"b=c", line=2)), |
53 | 65 | ] |
54 | 66 | ), |
55 | 67 | ( |
56 | 68 | u'a=b\n\nc=d', |
57 | 69 | [ |
58 | | - Binding(key=u"a", value=u"b", original=u"a=b\n"), |
59 | | - Binding(key=u"c", value=u"d", original=u"\nc=d"), |
| 70 | + Binding(key=u"a", value=u"b", original=Original(string=u"a=b\n", line=1)), |
| 71 | + Binding(key=u"c", value=u"d", original=Original(string=u"\nc=d", line=2)), |
60 | 72 | ] |
61 | 73 | ), |
62 | 74 | ( |
63 | 75 | u'a="\nb=c', |
64 | 76 | [ |
65 | | - Binding(key=None, value=None, original=u'a="\n'), |
66 | | - Binding(key=u"b", value=u"c", original=u"b=c"), |
| 77 | + Binding(key=None, value=None, original=Original(string=u'a="\n', line=1)), |
| 78 | + Binding(key=u"b", value=u"c", original=Original(string=u"b=c", line=2)), |
67 | 79 | ] |
68 | 80 | ), |
69 | 81 | ( |
70 | 82 | u'# comment\na="b\nc"\nd=e\n', |
71 | 83 | [ |
72 | | - Binding(key=None, value=None, original=u"# comment\n"), |
73 | | - Binding(key=u"a", value=u"b\nc", original=u'a="b\nc"\n'), |
74 | | - Binding(key=u"d", value=u"e", original=u"d=e\n"), |
| 84 | + Binding(key=None, value=None, original=Original(string=u"# comment\n", line=1)), |
| 85 | + Binding(key=u"a", value=u"b\nc", original=Original(string=u'a="b\nc"\n', line=2)), |
| 86 | + Binding(key=u"d", value=u"e", original=Original(string=u"d=e\n", line=4)), |
75 | 87 | ], |
76 | 88 | ), |
77 | 89 | ( |
78 | 90 | u'garbage[%$#\na=b', |
79 | 91 | [ |
80 | | - Binding(key=None, value=None, original=u"garbage[%$#\n"), |
81 | | - Binding(key=u"a", value=u"b", original=u'a=b'), |
| 92 | + Binding(key=None, value=None, original=Original(string=u"garbage[%$#\n", line=1)), |
| 93 | + Binding(key=u"a", value=u"b", original=Original(string=u'a=b', line=2)), |
82 | 94 | ], |
83 | 95 | ), |
84 | 96 | ]) |
|
0 commit comments