From 31722f988aea1c74cf04a25f30584cd9c08b8c4c Mon Sep 17 00:00:00 2001 From: Kenneth Daily Date: Fri, 13 Jun 2025 09:46:45 -0700 Subject: [PATCH 1/2] Adjust format of table for accessibility --- awscli/customizations/configure/list.py | 18 +++++-------- tests/functional/configure/test_configure.py | 2 +- .../customizations/configure/test_list.py | 27 ++++++++++--------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/awscli/customizations/configure/list.py b/awscli/customizations/configure/list.py index 5d44125a113f..d498b3af14af 100644 --- a/awscli/customizations/configure/list.py +++ b/awscli/customizations/configure/list.py @@ -51,17 +51,14 @@ class ConfigureListCommand(BasicCommand): ) def __init__(self, session, stream=None): - super(ConfigureListCommand, self).__init__(session) + super().__init__(session) if stream is None: stream = sys.stdout self._stream = stream def _run_main(self, args, parsed_globals): self._display_config_value( - ConfigValue('Value', 'Type', 'Location'), 'Name' - ) - self._display_config_value( - ConfigValue('-----', '----', '--------'), '----' + ConfigValue('VALUE', 'TYPE', 'LOCATION'), 'NAME' ) if parsed_globals and parsed_globals.profile is not None: @@ -80,13 +77,10 @@ def _run_main(self, args, parsed_globals): def _display_config_value(self, config_value, config_name): self._stream.write( - '%10s %24s %16s %s\n' - % ( - config_name, - config_value.value, - config_value.config_type, - config_value.config_variable, - ) + f'{config_name:<10} : ' + f'{config_value.value:<24} : ' + f'{str(config_value.config_type):<16} : ' + f'{str(config_value.config_variable)}\n' ) def _lookup_credentials(self): diff --git a/tests/functional/configure/test_configure.py b/tests/functional/configure/test_configure.py index 122d1c84af9f..b93c662e4879 100644 --- a/tests/functional/configure/test_configure.py +++ b/tests/functional/configure/test_configure.py @@ -57,7 +57,7 @@ def test_list_command(self): stdout, _, _ = self.run_cmd("configure list") self.assertRegex(stdout, r"access_key.+config-file") self.assertRegex(stdout, r"secret_key.+config-file") - self.assertRegex(stdout, r"region\s+us-west-2\s+config-file") + self.assertRegex(stdout, r"region\s+:\sus-west-2\s+:\sconfig-file") def test_get_command(self): self.set_config_file_contents( diff --git a/tests/unit/customizations/configure/test_list.py b/tests/unit/customizations/configure/test_list.py index 227017bbf40c..1fbdd5241fd1 100644 --- a/tests/unit/customizations/configure/test_list.py +++ b/tests/unit/customizations/configure/test_list.py @@ -32,10 +32,10 @@ def test_configure_list_command_nothing_set(self): self.configure_list = ConfigureListCommand(session, stream) self.configure_list(args=[], parsed_globals=None) rendered = stream.getvalue() - self.assertRegex(rendered, r'profile\s+') - self.assertRegex(rendered, r'access_key\s+') - self.assertRegex(rendered, r'secret_key\s+') - self.assertRegex(rendered, r'region\s+') + self.assertRegex(rendered, r'profile\s+: ') + self.assertRegex(rendered, r'access_key\s+: ') + self.assertRegex(rendered, r'secret_key\s+: ') + self.assertRegex(rendered, r'region\s+: ') def test_configure_from_env(self): env_vars = {'profile': 'myprofilename'} @@ -52,7 +52,7 @@ def test_configure_from_env(self): self.configure_list(args=[], parsed_globals=None) rendered = stream.getvalue() self.assertRegex( - rendered, r'profile\s+myprofilename\s+env\s+PROFILE_ENV_VAR' + rendered, r'profile\s+: myprofilename\s+: env\s+: PROFILE_ENV_VAR' ) def test_configure_from_config_file(self): @@ -70,7 +70,8 @@ def test_configure_from_config_file(self): self.configure_list(args=[], parsed_globals=None) rendered = stream.getvalue() self.assertRegex( - rendered, r'region\s+us-west-2\s+config-file\s+/config/location' + rendered, + r'region\s+: us-west-2\s+: config-file\s+: /config/location', ) def test_configure_from_multiple_sources(self): @@ -102,17 +103,19 @@ def test_configure_from_multiple_sources(self): rendered = stream.getvalue() # The profile came from an env var. self.assertRegex( - rendered, r'profile\s+myprofilename\s+env\s+AWS_DEFAULT_PROFILE' + rendered, + r'profile\s+: myprofilename\s+: env\s+: AWS_DEFAULT_PROFILE', ) # The region came from the config file. self.assertRegex( - rendered, r'region\s+us-west-2\s+config-file\s+/config/location' + rendered, + r'region\s+: us-west-2\s+: config-file\s+: /config/location', ) # The credentials came from an IAM role. Note how we're # also checking that the access_key/secret_key are masked # with '*' chars except for the last 4 chars. - self.assertRegex(rendered, r'access_key\s+\*+_key\s+iam-role') - self.assertRegex(rendered, r'secret_key\s+\*+_key\s+iam-role') + self.assertRegex(rendered, r'access_key\s+: \*+_key\s+: iam-role') + self.assertRegex(rendered, r'secret_key\s+: \*+_key\s+: iam-role') def test_configure_region_from_imds(self): session = FakeSession(all_variables={'region': 'from-imds'}) @@ -120,7 +123,7 @@ def test_configure_region_from_imds(self): self.configure_list = ConfigureListCommand(session, stream) self.configure_list(args=[], parsed_globals=None) rendered = stream.getvalue() - self.assertRegex(rendered, r'region\s+from-imds\s+imds') + self.assertRegex(rendered, r'region\s+: from-imds\s+: imds') def test_configure_from_args(self): parsed_globals = Namespace(profile='foo') @@ -136,4 +139,4 @@ def test_configure_from_args(self): self.configure_list = ConfigureListCommand(session, stream) self.configure_list(args=[], parsed_globals=parsed_globals) rendered = stream.getvalue() - self.assertRegex(rendered, r'profile\s+foo\s+manual\s+--profile') + self.assertRegex(rendered, r'profile\s+: foo\s+: manual\s+: --profile') From 913c948c614f4df0e78c702191503137c391298c Mon Sep 17 00:00:00 2001 From: Kenneth Daily Date: Tue, 24 Jun 2025 11:35:10 -0700 Subject: [PATCH 2/2] Update configure list help --- awscli/customizations/configure/list.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/awscli/customizations/configure/list.py b/awscli/customizations/configure/list.py index d498b3af14af..8651c42d0bf2 100644 --- a/awscli/customizations/configure/list.py +++ b/awscli/customizations/configure/list.py @@ -41,12 +41,11 @@ class ConfigureListCommand(BasicCommand): 'To show your current configuration values::\n' '\n' ' $ aws configure list\n' - ' Name Value Type Location\n' - ' ---- ----- ---- --------\n' - ' profile None None\n' - ' access_key ****************ABCD config_file ~/.aws/config\n' - ' secret_key ****************ABCD config_file ~/.aws/config\n' - ' region us-west-2 env AWS_DEFAULT_REGION\n' + ' NAME : VALUE : TYPE : LOCATION\n' + ' profile : : None : None\n' + ' access_key : ****************ABCD : config_file : ~/.aws/config\n' + ' secret_key : ****************ABCD : config_file : ~/.aws/config\n' + ' region : us-west-2 : env : AWS_DEFAULT_REGION\n' '\n' )