diff --git a/ipaserver/plugins/schema.py b/ipaserver/plugins/schema.py index 774bf1aa5..8d2780331 100644 --- a/ipaserver/plugins/schema.py +++ b/ipaserver/plugins/schema.py @@ -802,16 +802,19 @@ class schema(Command): to_process = [data] fingerprint = hashlib.sha1() - for entry in to_process: + i = 0 + while i < len(to_process): + entry = to_process[i] if isinstance(entry, (list, tuple)): for item in entry: - to_process.append(item) # pylint: disable=W4701 + to_process.append(item) elif isinstance(entry, dict): for key in sorted(entry.keys()): - to_process.append(key) # pylint: disable=W4701 - to_process.append(entry[key]) # pylint: disable=W4701 + to_process.append(key) + to_process.append(entry[key]) else: fingerprint.update(unicode(entry).encode('utf-8')) + i += 1 return unicode(fingerprint.hexdigest()[:8]) diff --git a/ipatests/pytest_ipa/integration/tasks.py b/ipatests/pytest_ipa/integration/tasks.py index 76bf34a3f..8cacf8d15 100755 --- a/ipatests/pytest_ipa/integration/tasks.py +++ b/ipatests/pytest_ipa/integration/tasks.py @@ -1350,7 +1350,9 @@ def two_connected_topo(master, replicas): yield v1, v3 grow.append((v1, v3)) - for (r, s) in grow: + i = 0 + while i < len(grow): + r, s = grow[i] t = pool.pop(0) for (u, v) in [(r, t), (s, t)]: @@ -1360,7 +1362,8 @@ def two_connected_topo(master, replicas): x = pool.pop(0) yield v, x yield w, x - grow.append((w, x)) # pylint: disable=modified-iterating-list + grow.append((w, x)) + i += 1 except IndexError: return