1212from azure .cli .core .util import CLIError
1313from azure .cli .command_modules .extension .custom import (list_extensions , add_extension , show_extension ,
1414 remove_extension , update_extension ,
15- list_available_extensions , OUT_KEY_NAME , OUT_KEY_VERSION )
15+ list_available_extensions , OUT_KEY_NAME , OUT_KEY_VERSION , OUT_KEY_METADATA )
1616from azure .cli .command_modules .extension ._resolve import NoExtensionCandidatesError
1717
1818
@@ -30,6 +30,8 @@ def _compute_file_hash(filename):
3030MY_EXT_NAME = 'myfirstcliextension'
3131MY_EXT_SOURCE = _get_test_data_file ('myfirstcliextension-0.0.3+dev-py2.py3-none-any.whl' )
3232MY_BAD_EXT_SOURCE = _get_test_data_file ('notanextension.txt' )
33+ MY_SECOND_EXT_NAME_DASHES = 'my-second-cli-extension'
34+ MY_SECOND_EXT_SOURCE_DASHES = _get_test_data_file ('my_second_cli_extension-0.0.1+dev-py2.py3-none-any.whl' )
3335
3436
3537class TestExtensionCommands (unittest .TestCase ):
@@ -62,6 +64,18 @@ def test_add_list_show_remove_extension(self):
6264 num_exts = len (list_extensions ())
6365 self .assertEqual (num_exts , 0 )
6466
67+ def test_add_list_show_remove_extension_with_dashes (self ):
68+ add_extension (MY_SECOND_EXT_SOURCE_DASHES )
69+ actual = list_extensions ()
70+ self .assertEqual (len (actual ), 1 )
71+ ext = show_extension (MY_SECOND_EXT_NAME_DASHES )
72+ self .assertEqual (ext [OUT_KEY_NAME ], MY_SECOND_EXT_NAME_DASHES )
73+ self .assertIn (OUT_KEY_NAME , ext [OUT_KEY_METADATA ], "Unable to get full metadata" )
74+ self .assertEqual (ext [OUT_KEY_METADATA ][OUT_KEY_NAME ], MY_SECOND_EXT_NAME_DASHES )
75+ remove_extension (MY_SECOND_EXT_NAME_DASHES )
76+ num_exts = len (list_extensions ())
77+ self .assertEqual (num_exts , 0 )
78+
6579 def test_add_extension_twice (self ):
6680 add_extension (MY_EXT_SOURCE )
6781 num_exts = len (list_extensions ())
0 commit comments