Ejemplo n.º 1
0
def test_new_argerror():
    """ markup.encoder.text.TextEncoder() checks arguments """
    with raises(TypeError):
        _encoder.TextEncoder()  # pylint: disable = no-value-for-parameter

    with raises(RuntimeError):
        _encoder.TextEncoder(_test.badstr)
Ejemplo n.º 2
0
def test_weakref():
    """ markup.encoder.text.TextEncoder() accepts and clears weakrefs """
    inst = _encoder.TextEncoder('foo')
    ref = _weakref.ref(inst)

    assert ref().encoding == 'foo'
    del inst
    assert ref() is None
Ejemplo n.º 3
0
def test_escape_bytes():
    """ markup.encoder.text.TextEncoder().escape() accepts bytes """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.escape(b'Andr\xe9')
    assert result == b'Andr\xe9'

    result = inst.escape(b'Andr[\xe9')
    assert result == b'Andr[]\xe9'
Ejemplo n.º 4
0
def test_setencoding():
    """ markup.encoder.text.TextEncoder() accepts encoding """
    inst = _encoder.TextEncoder('foo')
    inst.encoding = 'bar'

    assert inst.encoding == 'bar'

    with raises(RuntimeError):
        inst.encoding = _test.badstr
Ejemplo n.º 5
0
def test_escape_unicode():
    """ markup.encoder.text.TextEncoder().escape() accepts unicode """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.escape(u'Andr\xe9')
    assert result == u'Andr\xe9'

    result = inst.escape(u'A[ndr\xe9')
    assert result == u'A[]ndr\xe9'
Ejemplo n.º 6
0
def test_starttag_closing():
    """ markup.encoder.text.TextEncoder().starttag() emits closing tags """
    inst = _encoder.TextEncoder('foo')

    result = inst.starttag(b'xx', iter([]), True)
    assert result == b'[[xx]]'

    result = inst.starttag(b'yy', iter([(b'aa', None), (b'bb', b'cc')]), True)
    assert result == b'[[yy aa bb=cc]]'
Ejemplo n.º 7
0
def test_starttag_simple():
    """ markup.encoder.text.TextEncoder().starttag() emits regular tags """
    inst = _encoder.TextEncoder('foo')

    result = inst.starttag(b'xx', iter([]), False)
    assert result == b'[xx]'

    result = inst.starttag(b'yy', iter([(b'aa', None), (b'bb', b'cc')]),
                           False)
    assert result == b'[yy aa bb=cc]'
Ejemplo n.º 8
0
def test_starttag_many_attributes():
    """ markup.encoder.text.TextEncoder().starttag() deals with many attrs """
    inst = _encoder.TextEncoder('foo')

    result = inst.starttag(b'yy', iter([(b'aa', None), (b'bb', b'cc'),
                                        (b'x', None), (b'zz', b'vv'),
                                        (b'lalala', b'lololo'),
                                        (b'uauaua', b'l')]),
                           False)
    assert result == b'[yy aa bb=cc x zz=vv lalala=lololo uauaua=l]'
Ejemplo n.º 9
0
def test_attribute_bytes():
    """ markup.encoder.text.TextEncoder().attribute() accepts bytes """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.attribute(b'Andr\xe9')
    assert result == b'"Andr\xe9"'

    result = inst.attribute(b'A\\nd"r\xe9')
    assert result == b'"A\\\\nd\\"r\xe9"'

    result = inst.attribute(b'"An\\dr\xe9\\"')
    assert result == b'"\\"An\\\\dr\xe9\\\\\\""'
Ejemplo n.º 10
0
def test_attribute_unicode():
    """ markup.encoder.text.TextEncoder().attribute() accepts unicode """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.attribute(u'Andr\xe9')
    assert result == b'"Andr\xc3\xa9"'

    result = inst.attribute(u'A\\nd"r\xe9')
    assert result == b'"A\\\\nd\\"r\xc3\xa9"'

    result = inst.attribute(u'"An\\dr\xe9\\"')
    assert result == b'"\\"An\\\\dr\xc3\xa9\\\\\\""'
Ejemplo n.º 11
0
def test_starttag_invalid_attributes():
    """
    markup.encoder.text.TextEncoder().starttag() deals with broken attrs
    """
    inst = _encoder.TextEncoder('foo')

    with raises(TypeError):
        inst.starttag(b'yy', iter([(b'aa', None), (u'bb', b'cc')]), False)

    with raises(TypeError):
        inst.starttag(b'yy', iter([(b'aa', None), (b'bb', u'cc')]), False)

    with raises(TypeError):
        inst.starttag(b'yy', None, False)

    with raises(RuntimeError):
        inst.starttag(b'yy', _test.baditer(RuntimeError()), False)

    with raises(TypeError):
        inst.starttag(b'yy', [None], False)

    with raises(ValueError):
        inst.starttag(b'yy', [()], False)

    with raises(RuntimeError):
        inst.starttag(b'xx', [_test.baditer(RuntimeError())], False)

    with raises(ValueError):
        inst.starttag(b'yy', [(b'x',)], False)

    with raises(RuntimeError):
        inst.starttag(b'xx', [_test.baditer(b'x', RuntimeError())], False)

    with raises(ValueError):
        inst.starttag(b'yy', [(b'x', b'y', b'z')], False)

    with raises(RuntimeError):
        inst.starttag(b'xx', [_test.baditer(b'x', b'y', RuntimeError())],
                      False)
Ejemplo n.º 12
0
def test_encode_unicode():
    """ markup.encoder.text.TextEncoder().encode() accepts unicode """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.encode(u'Andr\xe9')
    assert result == b'Andr\xc3\xa9'
Ejemplo n.º 13
0
def test_endtag():
    """ markup.encoder.text.TextEncoder().endtag() emits endtags """
    inst = _encoder.TextEncoder('foo')

    result = inst.endtag(b'xx')
    assert result == b'[/xx]'
Ejemplo n.º 14
0
def test_starttag_bad_closing():
    """ markup.encoder.text.TextEncoder().starttag() deals with bad bool """
    inst = _encoder.TextEncoder('utf-8')
    with raises(RuntimeError):
        inst.starttag(b'x', [], _test.badbool)
Ejemplo n.º 15
0
def test_endtag_badtype():
    """ markup.encoder.text.TextEncoder().endtag() deals with bad type """
    inst = _encoder.TextEncoder('utf-8')
    with raises(TypeError):
        inst.endtag(u's')
Ejemplo n.º 16
0
def test_init():
    """ markup.encoder.text.TextEncoder() inits properly """
    inst = _encoder.TextEncoder('foo')
    assert isinstance(inst, _abstract.Encoder)
    assert inst.encoding == 'foo'
Ejemplo n.º 17
0
def test_name_badstr():
    """ markup.encoder.text.TextEncoder().name() raises on bad string """
    inst = _encoder.TextEncoder('utf-8')
    with raises(RuntimeError):
        inst.name(_test.badstr)
Ejemplo n.º 18
0
def test_name_bytes():
    """ markup.encoder.text.TextEncoder().name() accepts bytes """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.name(b'Andr\xe9')
    assert result == b'Andr\xe9'
Ejemplo n.º 19
0
def test_escape_arg_error():
    """ markup.encoder.text.TextEncoder().escape() checks arguments """
    inst = _encoder.TextEncoder('utf-8')
    with raises(TypeError):
        inst.escape()  # pylint: disable = no-value-for-parameter
Ejemplo n.º 20
0
def test_escape_badstr():
    """ markup.encoder.text.TextEncoder().escape() raises on bad str """
    inst = _encoder.TextEncoder('utf-8')
    with raises(RuntimeError):
        inst.escape(_test.badstr)
Ejemplo n.º 21
0
def test_content_bytes():
    """ markup.encoder.text.TextEncoder().content() accepts bytes """
    inst = _encoder.TextEncoder('utf-8')

    result = inst.content(b'Andr\xe9')
    assert result == b'Andr\xe9'
Ejemplo n.º 22
0
def test_content_badstr():
    """ markup.encoder.text.TextEncoder().content() raises on bad string """
    inst = _encoder.TextEncoder('utf-8')
    with raises(RuntimeError):
        inst.content(_test.badstr)
Ejemplo n.º 23
0
def test_starttag_badname():
    """ markup.encoder.text.TextEncoder().starttag() deals with bad name """
    inst = _encoder.TextEncoder('utf-8')
    with raises(TypeError):
        inst.starttag(u'x', [], False)