Beispiel #1
0
def test_start_tag_close_interleave():
    p1 = Interleave(
        Element(
            Name({'ns': ''}, 'bar'),
            EMPTY),
        TEXT)
    p2 = EMPTY
    schema = After(
        p1,
        p2)

    deriv = after(start_tag_close_deriv(p1), p2)
    assert str(start_tag_close_deriv(schema)) == str(deriv)

    schema = p1
    p11 = Element(
        Name({'ns': ''}, 'bar'),
        EMPTY)
    p12 = TEXT

    deriv = interleave(start_tag_close_deriv(p11), start_tag_close_deriv(p12))
    assert str(start_tag_close_deriv(schema)) == str(deriv)

    schema = p11
    deriv = schema
    assert str(start_tag_close_deriv(schema)) == str(deriv)

    schema = p12
    deriv = schema
    assert str(start_tag_close_deriv(schema)) == str(deriv)

    schema = p2
    deriv = schema
    assert str(start_tag_close_deriv(schema)) == str(deriv)

    schema = After(
        Interleave(
            Element(
                Name({'ns': ''}, 'bar'),
                EMPTY),
            TEXT),
        EMPTY)

    deriv = schema

    assert str(start_tag_close_deriv(schema)) == str(deriv)
Beispiel #2
0
def test_children_deriv_interleave():
    schema = After(
        Interleave(
            Element(
                Name({'ns': ''}, 'bar'),
                EMPTY),
            TEXT),
        EMPTY)

    doc = tuple()

    deriv = children_deriv(schema, ('',))
    assert str(children_deriv(schema, doc)) == str(deriv)

    x = child_deriv(schema, '')
    print("x is", x)
    deriv = choice(schema, x) if whitespace('') else x
    assert str(children_deriv(schema, '')) == str(deriv)

    deriv = text_deriv(schema, '')
    assert str(child_deriv(schema, '')) == str(deriv)

    p1 = Interleave(
        Element(
            Name({'ns': ''}, 'bar'),
            EMPTY),
        TEXT)
    p2 = EMPTY

    deriv = After(text_deriv(p1, ''), p2)
    assert str(text_deriv(schema, '')) == str(deriv)

    p11 = Element(
        Name({'ns': ''}, 'bar'),
        EMPTY)
    p12 = TEXT

    deriv = choice(
        interleave(text_deriv(p11, ''), p12),
        interleave(p11, text_deriv(p12, '')))
    assert str(text_deriv(p1, '')) == str(deriv)

    deriv = NotAllowed()
    assert str(text_deriv(p11, '')) == str(deriv)

    deriv = NotAllowed()
    assert str(interleave(NotAllowed(), p12)) == str(deriv)

    deriv = TEXT
    assert str(text_deriv(p12, '')) == str(deriv)

    assert whitespace('') is True

    schema = After(
        Interleave(
            Element(
                Name({'ns': ''}, 'bar'),
                EMPTY),
            TEXT),
        EMPTY)

    deriv = Choice(
        After(
            Interleave(
                Element(
                    Name({'ns': ''}, 'bar'),
                    EMPTY),
                TEXT),
            EMPTY),
        After(
            Interleave(
                Element(
                    Name({'ns': ''}, 'bar'),
                    EMPTY),
                TEXT),
            EMPTY))

    print('is', children_deriv(schema, doc))
    print('should be', deriv)
    assert str(children_deriv(schema, doc)) == str(deriv)