Skip to content

Commit 0dc69b3

Browse files
committed
Fixed bug in dashed arguments
1 parent 79c5f32 commit 0dc69b3

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

tap/tap.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ def add_argument(self, *name_or_flags, **kwargs) -> None:
255255
'Arguments must be added either as class variables or by overriding '
256256
'configure and including a self.add_argument call there.')
257257

258-
variable = get_argument_name(*name_or_flags)
258+
variable = get_argument_name(*name_or_flags).replace('-', '_')
259259
self.argument_buffer[variable] = (name_or_flags, kwargs)
260260

261261
def _add_arguments(self) -> None:

tests/test_integration.py

+10
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,16 @@ class DashedArgumentTap(Tap):
671671
self.assertEqual(args.arg_u_ment, 12)
672672
self.assertEqual(args.arg_you_mean_, 13)
673673

674+
def test_mismatch_dash_underscore_config_vs_annotations(self) -> None:
675+
class MismatchTap(Tap):
676+
arg_arg_arg: int
677+
678+
def configure(self):
679+
self.add_argument('--arg-arg_arg', '-arg', type=str)
680+
681+
args = MismatchTap(underscores_to_dashes=True).parse_args('--arg-arg-arg aarg'.split())
682+
self.assertEqual(args.arg_arg_arg, 'aarg')
683+
674684

675685
class ParseExplicitBoolArgsTests(TestCase):
676686

0 commit comments

Comments
 (0)