def test_get_one_does_not_iterate_long_sequence_indefinitely(self):
# Avoid typical performance pitfall of retrieving all objects.
# In rare failure cases, there may be large numbers. Fail fast.
class InfinityException(Exception):
"""Iteration went on indefinitely."""
def infinite_sequence():
"""Generator: count to infinity (more or less), then fail."""
for counter in range(3):
yield counter
raise InfinityException()
# Raises MultipleObjectsReturned as spec'ed. It does not
# iterate to infinity first!
self.assertRaises(
MultipleObjectsReturned, get_one, infinite_sequence())
评论列表
文章目录