From 84fb292cd55727598159585f864dce669203aec9 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 3 Feb 2017 12:17:43 +1100 Subject: [PATCH] tests/basics/string_format_modulo: Add more tests for dict formatting. --- tests/basics/string_format_modulo.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/basics/string_format_modulo.py b/tests/basics/string_format_modulo.py index 2e4909220a..f00502457e 100644 --- a/tests/basics/string_format_modulo.py +++ b/tests/basics/string_format_modulo.py @@ -66,6 +66,11 @@ print(">%-08.4d<" % -12) print(">%-+08.4d<" % -12) print(">%-+08.4d<" % 12) +# Should be able to print dicts; in this case they aren't used +# to lookup keywords in formats like %(foo)s +print('%s' % {}) +print('%s' % ({},)) + # Cases when "*" used and there's not enough values total try: print("%*s" % 5) @@ -77,6 +82,7 @@ except TypeError: print("TypeError") print("%(foo)s" % {"foo": "bar", "baz": False}) +print("%s %(foo)s %(foo)s" % {"foo": 1}) try: print("%(foo)s" % {}) except KeyError: @@ -87,6 +93,16 @@ try: except TypeError: print("TypeError") +# When using %(foo)s format the single argument must be a dict +try: + '%(foo)s' % 1 +except TypeError: + print('TypeError') +try: + '%(foo)s' % ({},) +except TypeError: + print('TypeError') + try: '%(a' % {'a':1} except ValueError: