Skip to content

Commit b68a317

Browse files
Fix bug
- Content of --help sections were accumulating
1 parent 06d5b39 commit b68a317

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

fastargs/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ def augment_argparse(self, parser):
7373
previous_epilog = ""
7474
while True:
7575
epilog = ""
76-
table_content = [['Name', 'Default', 'Constraint', 'Description']]
7776
for sec_path, entries in self.sections_to_entries.items():
77+
table_content = [['Name', 'Default', 'Constraint', 'Description']]
7878
for path in entries:
7979
param = self.entries[path]
8080
if not param.section.is_enabled(self):

tests/test_sources.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,33 @@ def test_flag(self):
262262
self.assertTrue(cfg['a.a'])
263263
self.assertFalse(cfg['a.b'])
264264

265+
def test_duplicate_sections(self):
266+
Section('a').params(
267+
a=Param(int)
268+
)
269+
Section('b').params(
270+
b=Param(int)
271+
)
272+
273+
cfg = get_current_config()
274+
parser = argparse.ArgumentParser(description='Test lib')
275+
276+
def fake_exit(*args, **kwargs):
277+
pass
278+
279+
fakeio = io.StringIO("")
280+
281+
with patch('sys.argv', ['pp', '--help']):
282+
with patch('sys.exit', fake_exit):
283+
with patch('sys.stdout', fakeio):
284+
cfg.augment_argparse(parser)
285+
cfg.collect_argparse_args(parser)
286+
287+
output = fakeio.getvalue()
288+
289+
self.assertEqual(output.count('a.a'), 1)
290+
self.assertEqual(output.count('b.b'), 1)
291+
265292

266293
if __name__ == '__main__':
267294
unittest.main()

0 commit comments

Comments
 (0)