Skip to content

Commit a667f1f

Browse files
committed
Added unit tests.
1 parent 6405c45 commit a667f1f

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

test/test_config.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,35 @@ def test_iterator(config: Config) -> None:
185185
assert lst['core.bare']
186186

187187

188+
def test_valueless_key_iteration() -> None:
189+
# A valueless key (no `= value`) has a NULL value pointer in libgit2.
190+
# Iterating over such entries must not raise a RuntimeError.
191+
with open(CONFIG_FILENAME, 'w') as new_file:
192+
new_file.write('[section]\n\tvaluelesskey\n\tnormalkey = somevalue\n')
193+
194+
config = Config()
195+
config.add_file(CONFIG_FILENAME, 6)
196+
197+
entries = {entry.name: entry for entry in config}
198+
assert 'section.valuelesskey' in entries
199+
assert 'section.normalkey' in entries
200+
201+
202+
def test_valueless_key_value() -> None:
203+
# A valueless key must expose value=None and raw_value=None.
204+
with open(CONFIG_FILENAME, 'w') as new_file:
205+
new_file.write('[section]\n\tvaluelesskey\n\tnormalkey = somevalue\n')
206+
207+
config = Config()
208+
config.add_file(CONFIG_FILENAME, 6)
209+
210+
entries = {entry.name: entry for entry in config}
211+
assert entries['section.valuelesskey'].raw_value is None
212+
assert entries['section.valuelesskey'].value is None
213+
assert entries['section.normalkey'].raw_value == b'somevalue'
214+
assert entries['section.normalkey'].value == 'somevalue'
215+
216+
188217
def test_parsing() -> None:
189218
assert Config.parse_bool('on')
190219
assert Config.parse_bool('1')

0 commit comments

Comments
 (0)