tests/basics/string_format_modulo: Add more tests for dict formatting.

This commit is contained in:
Damien George 2017-02-03 12:17:43 +11:00
parent 7317e34383
commit 84fb292cd5

View File

@ -66,6 +66,11 @@ print(">%-08.4d<" % -12)
print(">%-+08.4d<" % -12) 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 # Cases when "*" used and there's not enough values total
try: try:
print("%*s" % 5) print("%*s" % 5)
@ -77,6 +82,7 @@ except TypeError:
print("TypeError") print("TypeError")
print("%(foo)s" % {"foo": "bar", "baz": False}) print("%(foo)s" % {"foo": "bar", "baz": False})
print("%s %(foo)s %(foo)s" % {"foo": 1})
try: try:
print("%(foo)s" % {}) print("%(foo)s" % {})
except KeyError: except KeyError:
@ -87,6 +93,16 @@ try:
except TypeError: except TypeError:
print("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: try:
'%(a' % {'a':1} '%(a' % {'a':1}
except ValueError: except ValueError: