瀏覽代碼

utils: Fix typo in unique_everseen.

Signed-off-by: Antony MECHIN <[email protected]>
Antony MECHIN 7 年之前
父節點
當前提交
5b9b519e8a
共有 2 個文件被更改,包括 7 次插入4 次删除
  1. 3 2
      compose/utils.py
  2. 4 2
      tests/unit/utils_test.py

+ 3 - 2
compose/utils.py

@@ -176,6 +176,7 @@ def unique_everseen(iterable, key=lambda x: x):
     "List unique elements, preserving order. Remember all elements ever seen."
     seen = set()
     for element in iterable:
-        if key(element) not in seen:
-            seen.add(element)
+        unique_key = key(element)
+        if unique_key not in seen:
+            seen.add(unique_key)
             yield element

+ 4 - 2
tests/unit/utils_test.py

@@ -72,5 +72,7 @@ class TestParseBytes(object):
 
 class TestMoreItertools(object):
     def test_unique_everseen(self):
-        assert list(utils.unique_everseen([2, 1, 2, 1])) == [2, 1]
-        assert list(utils.unique_everseen([2, 1, 2, 1], hash)) == [2, 1]
+        unique = utils.unique_everseen
+        assert list(unique([2, 1, 2, 1])) == [2, 1]
+        assert list(unique([2, 1, 2, 1], hash)) == [2, 1]
+        assert list(unique([2, 1, 2, 1], lambda x: 'key_%s' % x)) == [2, 1]