Python 2.7和3.4:为什么test_unexpected_error
测试抛出错误而不是失败?
import unittest
class TestLists(unittest.TestCase):
def test_unexpected_error(self):
self.assertEqual([0] * 1000 + [1], [1] + [0] * 1000)
def test_fails_as_expected(self):
self.assertEqual([0] * 1000 + [1], [0] * 1000 + [0])
if __name__ == '__main__':
unittest.main()
错误是:
RuntimeError: maximum recursion depth exceeded while calling a Python object
Traceback(摘要-递归错误是递归错误是递归错误是...。)
Traceback (most recent call last):
File "sotest.py", line 7, in test_unexpected_error
self.assertEquals([0] * 1000 + [1], [1] + [0] * 1000)
File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/lib/python2.7/unittest/case.py", line 743, in assertListEqual
self.assertSequenceEqual(list1, list2, msg, seq_type=list)
File "/usr/lib/python2.7/unittest/case.py", line 722, in assertSequenceEqual
pprint.pformat(seq2).splitlines()))
File "/usr/lib/python2.7/difflib.py", line 920, in compare
for line in g:
File "/usr/lib/python2.7/difflib.py", line 1038, in _fancy_replace
for line in self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi):
File "/usr/lib/python2.7/difflib.py", line 1051, in _fancy_helper
for line in g:
File "/usr/lib/python2.7/difflib.py", line 1038, in _fancy_replace
for line in self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi):
File "/usr/lib/python2.7/difflib.py", line 1051, in _fancy_helper
for line in g:
File "/usr/lib/python2.7/difflib.py", line 1038, in _fancy_replace
for line in self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi):
File "/usr/lib/python2.7/difflib.py", line 1051, in _fancy_helper
for line in g:
(...)
File "/usr/lib/python2.7/difflib.py", line 965, in _fancy_replace
cruncher = SequenceMatcher(self.charjunk)
File "/usr/lib/python2.7/difflib.py", line 219, in __init__
self.set_seqs(a, b)
File "/usr/lib/python2.7/difflib.py", line 231, in set_seqs
self.set_seq2(b)
File "/usr/lib/python2.7/difflib.py", line 285, in set_seq2
self.__chain_b()
File "/usr/lib/python2.7/difflib.py", line 318, in __chain_b
for i, elt in enumerate(b):
RuntimeError: maximum recursion depth exceeded while calling a Python object