Skip to content

Commit f4188bd

Browse files
committed
add tests and determinism to format_invocation
1 parent 626df0f commit f4188bd

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

boltons/funcutils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def format_invocation(name='', args=(), kwargs=None):
296296
kwargs = kwargs or {}
297297
a_text = ', '.join([repr(a) for a in args])
298298
if isinstance(kwargs, dict):
299-
kwarg_items = kwargs.items()
299+
kwarg_items = [(k, kwargs[k]) for k in sorted(kwargs)]
300300
else:
301301
kwarg_items = kwargs
302302
kw_text = ', '.join(['%s=%r' % (k, v) for k, v in kwarg_items])

tests/test_funcutils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from boltons.funcutils import (copy_function,
44
total_ordering,
5+
format_invocation,
56
InstancePartial,
67
CachedInstancePartial)
78

@@ -61,3 +62,10 @@ def __eq__(self, other):
6162
assert num < 5
6263
assert num >= 2
6364
assert num != 1
65+
66+
67+
def test_format_invocation():
68+
assert format_invocation('d') == "d()"
69+
assert format_invocation('f', ('a', 'b')) == "f('a', 'b')"
70+
assert format_invocation('g', (), {'x': 'y'}) == "g(x='y')"
71+
assert format_invocation('h', ('a', 'b'), {'x': 'y', 'z': 'zz'}) == "h('a', 'b', x='y', z='zz')"

0 commit comments

Comments
 (0)