summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/backward.py8
-rw-r--r--tests/test_backward.py16
2 files changed, 21 insertions, 3 deletions
diff --git a/coverage/backward.py b/coverage/backward.py
index 54e46254..4894bac0 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -75,14 +75,16 @@ except NameError:
range = range
# A function to iterate listlessly over a dict's items.
-if "iteritems" in dir({}):
+try:
+ {}.iteritems
+except AttributeError:
def iitems(d):
"""Produce the items from dict `d`."""
- return d.iteritems()
+ return d.items()
else:
def iitems(d):
"""Produce the items from dict `d`."""
- return d.items()
+ return d.iteritems()
# Exec is a statement in Py2, a function in Py3
if sys.version_info >= (3, 0):
diff --git a/tests/test_backward.py b/tests/test_backward.py
new file mode 100644
index 00000000..63ee20d0
--- /dev/null
+++ b/tests/test_backward.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+"""Tests that our version shims in backward.py are working."""
+
+from coverage.backward import iitems
+from tests.backunittest import TestCase
+
+
+class BackwardTest(TestCase):
+ """Tests of things from backward.py."""
+
+ run_in_temp_dir = False
+
+ def test_iitems(self):
+ d = {'a': 1, 'b': 2, 'c': 3}
+ items = [('a', 1), ('b', 2), ('c', 3)]
+ self.assertSameElements(list(iitems(d)), items)