Пример #1
0
def test_HeaderAccept_get_max_quality_accept():
    accept_html = MediaRange('text/html', q='0.8')
    accept_xml = MediaRange('application/xml', q='0.5')
    accepts = HeaderAccept([accept_html, accept_xml])

    result = accepts.get_max_quality_accept()

    assert list(result) == [accept_html]
    assert isinstance(result, HeaderAccept)
    assert accept_html in result
    assert accept_xml not in result
Пример #2
0
def test_HeaderAccept_to_http():
    """Assert value.to_http() returns expected string value"""
    accept_html = MediaRange(mimetype='text/html')
    accept_xml = MediaRange(mimetype='application/xml', q='0.9')
    accept_text = MediaRange(
        mimetype='text/plain', level='1', version='1.0'
    )
    expected = 'text/html,text/plain;level=1;version=1.0,application/xml;q=0.9'

    accepts = HeaderAccept([accept_html, accept_xml, accept_text])
    assert accepts.to_http() == expected
Пример #3
0
def test_HeaderAccept_is_html_accepted_wildcard():
    accept_text_wildcard = MediaRange('text/*', q='0.8')
    accept_application_wildcard = MediaRange(
        'application/*', q='0.8'
    )
    accept_wildcard = MediaRange('*/*', q='0.8')

    accepts = HeaderAccept([
        accept_text_wildcard, accept_application_wildcard, accept_wildcard
    ])
    assert accepts.is_html_accepted(strict=True) is False
    assert accepts.is_html_accepted() is True
Пример #4
0
def test_HeaderAccept_append():
    accept_html = MediaRange('text/html', q='0.8')
    accept_xml = MediaRange('application/xml', q='1.0')
    accepts = HeaderAccept([accept_html])

    assert accepts.max_quality == Decimal('0.8')
    assert len(accepts) == 1

    accepts.append(accept_xml)
    assert accepts.max_quality == 1.0
    assert len(accepts) == 2

    with raises(TypeError):
        accepts.append(object())
Пример #5
0
def test_HeaderAccept_is_html_accepted():
    accept_html = MediaRange('text/html', q='0.8')
    accept_xhtml = MediaRange('application/xhtml', q='0.8')
    accept_xhtml_xml = MediaRange(
        'application/xhtml+xml', q='0.8'
    )
    accept_xml = MediaRange('application/xml', q='0.5')

    accepts = HeaderAccept([accept_html, accept_xml])
    accepts_xhtml = HeaderAccept([accept_xhtml, accept_xml])
    accepts_xhtml_xml = HeaderAccept([accept_xhtml_xml, accept_xml])

    assert accepts.is_html_accepted(strict=True) is True
    assert accepts_xhtml.is_html_accepted(strict=True) is True
    assert accepts_xhtml_xml.is_html_accepted(strict=True) is True

    accepts = HeaderAccept([accept_xml])
    assert accepts.is_html_accepted(strict=True) is False