diff --git a/src/azure/cli/_output.py b/src/azure/cli/_output.py index 496883115b0..a8bdaf052b1 100644 --- a/src/azure/cli/_output.py +++ b/src/azure/cli/_output.py @@ -124,7 +124,7 @@ def get_formatter(format_type): class ListOutput(object): #pylint: disable=too-few-public-methods # Match the capital letters in a camel case string - FORMAT_KEYS_PATTERN = re.compile('([A-Z][^A-Z]*)') + FORMAT_KEYS_PATTERN = re.compile('([A-Z]+(?![a-z])|[A-Z]{1}[a-z]+)') def __init__(self): self._formatted_keys_cache = {} diff --git a/src/azure/cli/tests/test_output.py b/src/azure/cli/tests/test_output.py index 47b0acdb5e4..6c35e2e61e5 100644 --- a/src/azure/cli/tests/test_output.py +++ b/src/azure/cli/tests/test_output.py @@ -142,6 +142,16 @@ def test_out_list_valid(self): Id : 0b1f6472 +""")) + + def test_out_list_valid_caps(self): + output_producer = OutputProducer(formatter=format_list, file=self.io) + output_producer.out(CommandResultItem({'active': True, 'TESTStuff': 'blah'})) + self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( +"""Test Stuff : blah +Active : True + + """)) def test_out_list_valid_none_val(self): @@ -232,7 +242,7 @@ def test_out_list_format_key_multiple_caps(self): lo = ListOutput() self.assertEqual(lo._formatted_keys_cache, {}) lo._get_formatted_key('fooIDS') - self.assertEqual(lo._formatted_keys_cache, {'fooIDS': 'Foo I D S'}) + self.assertEqual(lo._formatted_keys_cache, {'fooIDS': 'Foo Ids'}) def test_out_list_format_key_multiple_words(self): lo = ListOutput()