def test_has_next_returns_false_at_end_of_iteration(self): peaker = Peaker((x for x in 'ab')) self.assertTrue(peaker.has_next()) peaker.next() self.assertTrue(peaker.has_next()) peaker.next() self.assertFalse(peaker.has_next())
def test_take_while(self): peaker = Peaker((x for x in 'name 1234')) name = ''.join(peaker.take_while(str.isalpha)) self.assertEqual(name, 'name') self.assertTrue(peaker.has_next()) spaces = ''.join(peaker.take_while(str.isspace)) self.assertEqual(spaces, ' ') self.assertTrue(peaker.has_next()) numbers = ''.join(peaker.take_while(str.isdecimal)) self.assertEqual(numbers, '1234') self.assertFalse(peaker.has_next())
def test_description_ends_with_sections(self): """Make sure the description section doesn't eat everything.""" peaker = Peaker(lex('Short description.\n' '\n' 'Long Description.\n' '\n' 'Returns:\n' ' Nothing!\n' '\n'), lookahead=3) parse_description(peaker) self.assertTrue(peaker.has_next()) node = parse_returns(peaker) self.assertEqual( node.node_type, NodeType.RETURNS_SECTION, )
def test_passing_none_to_peaker_marks_empty(self): peaker = Peaker((x for x in [])) self.assertFalse(peaker.has_next())
def test_empty_stream_says_it_has_none(self): peaker = Peaker((x for x in '')) self.assertFalse(peaker.has_next())