Skip to content

Commit d4c2586

Browse files
committed
add .span() test
1 parent 1c4856f commit d4c2586

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

tests/test_parsy.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from parsy import (
99
ParseError,
10+
SourceSpan,
1011
Stream,
1112
alt,
1213
any_char,
@@ -209,6 +210,21 @@ def test_mark(self):
209210
self.assertEqual(letters, ["q", "w", "e", "r"])
210211
self.assertEqual(end, (1, 4))
211212

213+
def test_span(self):
214+
parser = (letter.many().span() << string("\n")).many()
215+
source = "sample"
216+
217+
lines = parser.parse(Stream("asdf\nqwer\n", source=source))
218+
219+
self.assertEqual(len(lines), 2)
220+
221+
(span, letters) = lines[0]
222+
self.assertEqual(span, SourceSpan(source, (0, 0), (0, 4)))
223+
self.assertEqual(letters, ["a", "s", "d", "f"])
224+
225+
(span, letters) = lines[1]
226+
self.assertEqual(span, SourceSpan(source, (1, 0), (1, 4)))
227+
212228
def test_tag(self):
213229
parser = letter.many().concat().tag("word")
214230
self.assertEqual(

0 commit comments

Comments
 (0)