#17766: merge with 3.3.

This commit is contained in:
Ezio Melotti 2013-04-17 04:36:45 +03:00
commit abe46fd810
2 changed files with 17 additions and 32 deletions

View file

@ -50,7 +50,7 @@ from operator import length_hint
n = 10
class TestInvariantWithoutMutations(unittest.TestCase):
class TestInvariantWithoutMutations:
def test_invariant(self):
it = self.it
@ -77,64 +77,64 @@ class TestTemporarilyImmutable(TestInvariantWithoutMutations):
## ------- Concrete Type Tests -------
class TestRepeat(TestInvariantWithoutMutations):
class TestRepeat(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = repeat(None, n)
class TestXrange(TestInvariantWithoutMutations):
class TestXrange(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = iter(range(n))
class TestXrangeCustomReversed(TestInvariantWithoutMutations):
class TestXrangeCustomReversed(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = reversed(range(n))
class TestTuple(TestInvariantWithoutMutations):
class TestTuple(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = iter(tuple(range(n)))
## ------- Types that should not be mutated during iteration -------
class TestDeque(TestTemporarilyImmutable):
class TestDeque(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = deque(range(n))
self.it = iter(d)
self.mutate = d.pop
class TestDequeReversed(TestTemporarilyImmutable):
class TestDequeReversed(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = deque(range(n))
self.it = reversed(d)
self.mutate = d.pop
class TestDictKeys(TestTemporarilyImmutable):
class TestDictKeys(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = dict.fromkeys(range(n))
self.it = iter(d)
self.mutate = d.popitem
class TestDictItems(TestTemporarilyImmutable):
class TestDictItems(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = dict.fromkeys(range(n))
self.it = iter(d.items())
self.mutate = d.popitem
class TestDictValues(TestTemporarilyImmutable):
class TestDictValues(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = dict.fromkeys(range(n))
self.it = iter(d.values())
self.mutate = d.popitem
class TestSet(TestTemporarilyImmutable):
class TestSet(TestTemporarilyImmutable, unittest.TestCase):
def setUp(self):
d = set(range(n))
@ -143,7 +143,7 @@ class TestSet(TestTemporarilyImmutable):
## ------- Types that can mutate during iteration -------
class TestList(TestInvariantWithoutMutations):
class TestList(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = iter(range(n))
@ -163,7 +163,7 @@ class TestList(TestInvariantWithoutMutations):
self.assertEqual(length_hint(it), 0)
class TestListReversed(TestInvariantWithoutMutations):
class TestListReversed(TestInvariantWithoutMutations, unittest.TestCase):
def setUp(self):
self.it = reversed(range(n))
@ -225,23 +225,5 @@ class TestLengthHintExceptions(unittest.TestCase):
self.assertEqual(list(NoneLengthHint()), list(range(10)))
def test_main():
unittests = [
TestRepeat,
TestXrange,
TestXrangeCustomReversed,
TestTuple,
TestDeque,
TestDequeReversed,
TestDictKeys,
TestDictItems,
TestDictValues,
TestSet,
TestList,
TestListReversed,
TestLengthHintExceptions,
]
support.run_unittest(*unittests)
if __name__ == "__main__":
test_main()
unittest.main()

View file

@ -119,6 +119,9 @@ Tests
- Issue #12820: add tests for the xml.dom.minicompat module.
Patch by John Chandler and Phil Connell.
- Issue #17766: test_iterlen now works with unittest test discovery.
Patch by Zachary Ware.
- Issue #17690: test_time now works with unittest test discovery.
Patch by Zachary Ware.