From: Raymond Hettinger Date: Sun, 1 Nov 2009 18:43:31 +0000 (+0000) Subject: Issue 7244: Fix indentation in C code. Fix test to not sent output to stdout. X-Git-Tag: v2.6.5rc1~397 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4da5faae212b31bf24efcc72e03a1484166a2917;p=python Issue 7244: Fix indentation in C code. Fix test to not sent output to stdout. --- diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index ee5af4b601..dbc941fd77 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -422,7 +422,8 @@ class TestBasicOps(unittest.TestCase): def run(r1, r2): result = [] for i, j in izip_longest(r1, r2, fillvalue=0): - print(i, j) + with test_support.captured_output('stdout'): + print (i, j) result.append((i, j)) return result self.assertEqual(run(r1, r2), [(1,2), (1,2), (1,2), (0,2)]) @@ -431,8 +432,11 @@ class TestBasicOps(unittest.TestCase): # and StopIteration would stop as expected r1 = Repeater(1, 3, RuntimeError) r2 = Repeater(2, 4, StopIteration) - mylist = lambda it: [v for v in it] - self.assertRaises(RuntimeError, mylist, izip_longest(r1, r2, fillvalue=0)) + it = izip_longest(r1, r2, fillvalue=0) + self.assertEqual(next(it), (1, 2)) + self.assertEqual(next(it), (1, 2)) + self.assertEqual(next(it), (1, 2)) + self.assertRaises(RuntimeError, next, it) def test_product(self): for args, result in [ @@ -723,7 +727,6 @@ class TestBasicOps(unittest.TestCase): self.assertRaises(StopIteration, f(lambda x:x, []).next) self.assertRaises(StopIteration, f(lambda x:x, StopNow()).next) - class TestExamples(unittest.TestCase): def test_chain(self): diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c index ecd5e173da..23c219e964 100644 --- a/Modules/itertoolsmodule.c +++ b/Modules/itertoolsmodule.c @@ -3407,26 +3407,26 @@ izip_longest_next(iziplongestobject *lz) Py_INCREF(result); for (i=0 ; i < tuplesize ; i++) { it = PyTuple_GET_ITEM(lz->ittuple, i); - if (it == NULL) { - Py_INCREF(lz->fillvalue); - item = lz->fillvalue; + if (it == NULL) { + Py_INCREF(lz->fillvalue); + item = lz->fillvalue; + } else { + assert(PyIter_Check(it)); + item = PyIter_Next(it); + if (item == NULL) { + lz->numactive -= 1; + if (lz->numactive == 0 || PyErr_Occurred()) { + lz->numactive = 0; + Py_DECREF(result); + return NULL; } else { - assert(PyIter_Check(it)); - item = PyIter_Next(it); - if (item == NULL) { - lz->numactive -= 1; - if (lz->numactive == 0 || PyErr_Occurred()) { - lz->numactive = 0; - Py_DECREF(result); - return NULL; - } else { - Py_INCREF(lz->fillvalue); - item = lz->fillvalue; - PyTuple_SET_ITEM(lz->ittuple, i, NULL); - Py_DECREF(it); - } - } + Py_INCREF(lz->fillvalue); + item = lz->fillvalue; + PyTuple_SET_ITEM(lz->ittuple, i, NULL); + Py_DECREF(it); } + } + } olditem = PyTuple_GET_ITEM(result, i); PyTuple_SET_ITEM(result, i, item); Py_DECREF(olditem); @@ -3437,26 +3437,26 @@ izip_longest_next(iziplongestobject *lz) return NULL; for (i=0 ; i < tuplesize ; i++) { it = PyTuple_GET_ITEM(lz->ittuple, i); - if (it == NULL) { - Py_INCREF(lz->fillvalue); - item = lz->fillvalue; - } else { - assert(PyIter_Check(it)); - item = PyIter_Next(it); - if (item == NULL) { - lz->numactive -= 1; - if (lz->numactive == 0 || PyErr_Occurred()) { - lz->numactive = 0; - Py_DECREF(result); - return NULL; - } else { - Py_INCREF(lz->fillvalue); - item = lz->fillvalue; - PyTuple_SET_ITEM(lz->ittuple, i, NULL); - Py_DECREF(it); - } - } - } + if (it == NULL) { + Py_INCREF(lz->fillvalue); + item = lz->fillvalue; + } else { + assert(PyIter_Check(it)); + item = PyIter_Next(it); + if (item == NULL) { + lz->numactive -= 1; + if (lz->numactive == 0 || PyErr_Occurred()) { + lz->numactive = 0; + Py_DECREF(result); + return NULL; + } else { + Py_INCREF(lz->fillvalue); + item = lz->fillvalue; + PyTuple_SET_ITEM(lz->ittuple, i, NULL); + Py_DECREF(it); + } + } + } PyTuple_SET_ITEM(result, i, item); } }