def test_parse_labels_invalud(labels) -> None: with pytest.raises(PARSE_ERRORS): parse_labels(labels)
def test_parse_labels_empty() -> None: assert parse_labels("") == tuple()
def test_parse_labels_multiple() -> None: labels = (SurfaceLabel.from_label(Surface.OBVERSE), ColumnLabel.from_int(3)) assert parse_labels(" ".join(label.to_value() for label in labels)) == labels
def test_parse_labels(label, status, _, expected) -> None: assert parse_labels(f"{label}{status}") == (expected, )
def parse_manuscript(atf): return parse_chapter(atf, MANUSCRIPTS, "manuscript_line") @pytest.mark.parametrize( "lines,expected", [ ( [ f"{MANUSCRIPTS[0].siglum} o iii 1. kur", "#note: a note", "$ single ruling", ], ManuscriptLine( MANUSCRIPTS[0].id, parse_labels("o iii"), parse_text_line("1. kur"), (parse_paratext("#note: a note"), parse_paratext("$ single ruling")), ), ), ( [f"{MANUSCRIPTS[0].siglum} 1. kur"], ManuscriptLine(MANUSCRIPTS[0].id, tuple(), parse_text_line("1. kur")), ), ( [f" {MANUSCRIPTS[0].siglum} 1. kur"], ManuscriptLine(MANUSCRIPTS[0].id, tuple(), parse_text_line("1. kur")), ),
def try_parse_labels(value): try: return parse_labels(" ".join(value)) except PARSE_ERRORS as error: raise ValidationError(str(error)) from error