Merge "Replace ValueError with StopIteration in single() method"

This commit is contained in:
Jenkins 2016-08-29 19:40:36 +00:00 committed by Gerrit Code Review
commit f71a030508
2 changed files with 2 additions and 2 deletions

View File

@ -238,9 +238,9 @@ def single(collection):
result = six.next(it)
try:
six.next(it)
raise ValueError('Collection contains more than one item')
except StopIteration:
return result
raise StopIteration('Collection contains more than one item')
@specs.parameter('collection', yaqltypes.Iterable())

View File

@ -135,7 +135,7 @@ class TestQueries(yaql.tests.TestCase):
def test_single(self):
self.assertEqual(2, self.eval('list(2).single()'))
self.assertRaises(StopIteration, self.eval, 'list().single()')
self.assertRaises(ValueError, self.eval, 'list(1, 2).single()')
self.assertRaises(StopIteration, self.eval, 'list(1, 2).single()')
def test_last(self):
self.assertEqual(3, self.eval('list(2, 3).last()'))