Issue #24360: Improve __repr__ of argparse.Namespace() for invalid identifiers.

Patch by Matthias Bussonnier.
This commit is contained in:
Berker Peksag 2015-07-29 23:51:47 +03:00
parent ada5578f95
commit 76b1714be8
3 changed files with 25 additions and 1 deletions

View file

@ -4512,6 +4512,21 @@ class TestStrings(TestCase):
string = "Namespace(bar='spam', foo=42)"
self.assertStringEqual(ns, string)
def test_namespace_starkwargs_notidentifier(self):
ns = argparse.Namespace(**{'"': 'quote'})
string = """Namespace(**{'"': 'quote'})"""
self.assertStringEqual(ns, string)
def test_namespace_kwargs_and_starkwargs_notidentifier(self):
ns = argparse.Namespace(a=1, **{'"': 'quote'})
string = """Namespace(a=1, **{'"': 'quote'})"""
self.assertStringEqual(ns, string)
def test_namespace_starkwargs_identifier(self):
ns = argparse.Namespace(**{'valid': True})
string = "Namespace(valid=True)"
self.assertStringEqual(ns, string)
def test_parser(self):
parser = argparse.ArgumentParser(prog='PROG')
string = (