diff --git a/yaql/standard_library/queries.py b/yaql/standard_library/queries.py index 3b2cd0d..a5e6a8b 100644 --- a/yaql/standard_library/queries.py +++ b/yaql/standard_library/queries.py @@ -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()) diff --git a/yaql/tests/test_queries.py b/yaql/tests/test_queries.py index 4f1936b..57b827e 100644 --- a/yaql/tests/test_queries.py +++ b/yaql/tests/test_queries.py @@ -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()'))