diff --git a/awscli/customizations/configure/writer.py b/awscli/customizations/configure/writer.py index 4aedabc43792..864f11b27b27 100644 --- a/awscli/customizations/configure/writer.py +++ b/awscli/customizations/configure/writer.py @@ -197,6 +197,10 @@ def _insert_new_values(self, line_number, contents, new_values, indent=''): new_contents.append('%s%s = %s\n' % (subindent, subkey, subval)) else: + if value is None: + continue + if isinstance(value, str) and not value.strip(): + continue new_contents.append('%s%s = %s\n' % (indent, key, value)) del new_values[key] contents.insert(line_number + 1, ''.join(new_contents)) diff --git a/tests/unit/customizations/configure/test_writer.py b/tests/unit/customizations/configure/test_writer.py index 92fd0f477453..5b3599ea86d8 100644 --- a/tests/unit/customizations/configure/test_writer.py +++ b/tests/unit/customizations/configure/test_writer.py @@ -369,3 +369,13 @@ def test_appends_newline_on_new_section(self): '[new-section]\n' 'region = us-west-2\n' ) + def test_writer_skips_empty_values(self): + self.writer.update_config( + {'region': '', '__section__': 'default'}, + self.config_filename + ) + with open(self.config_filename, 'r') as f: + contents = f.read() + self.assertNotIn('region', contents) + +