Skip to content

Commit bdf9552

Browse files
committed
Implement temporary workaround for Python 2/3 kwarg ordering differences.
1 parent 76267b8 commit bdf9552

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

tests/util.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ def _delete(self, key, args=None):
148148
self.facts[key].pop(args[0], None)
149149

150150

151+
# TODO: remove after python2 removal, as only required because of different default ordering in 2/3
152+
def _sort_kwargs_str(string):
153+
return ', '.join(sorted(string.split(', ')))
154+
155+
151156
class FakeHost(object):
152157
noop_description = None
153158

@@ -170,10 +175,14 @@ def get_fact(self, fact_cls, **kwargs):
170175
if fact is None:
171176
raise KeyError('Missing test fact data: {0}'.format(fact_key))
172177
if kwargs:
173-
kwargs_str = get_kwargs_str(kwargs)
178+
fact_ordered_keys = {
179+
_sort_kwargs_str(key): value
180+
for key, value in fact.items()
181+
}
182+
kwargs_str = _sort_kwargs_str(get_kwargs_str(kwargs))
174183
if kwargs_str not in fact:
175184
logger.info('Possible missing fact key: {0}'.format(kwargs_str))
176-
return fact.get(kwargs_str)
185+
return fact_ordered_keys.get(kwargs_str)
177186
return fact
178187

179188
def create_fact(self, fact_cls, data, kwargs):

0 commit comments

Comments
 (0)