Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

# META: timeout=long
import pytest
pytestmark = pytest.mark.asyncio
@pytest.mark.parametrize(
"ranges,expected",
[
(
["2-4"],
[
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 3"},
{"type": "string", "value": "Page 4"},
],
),
(
["2-4", "2-3"],
[
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 3"},
{"type": "string", "value": "Page 4"},
],
),
(
["2-4", "3-5"],
[
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 3"},
{"type": "string", "value": "Page 4"},
{"type": "string", "value": "Page 5"},
],
),
(
["9-"],
[
{"type": "string", "value": "Page 9"},
{"type": "string", "value": "Page 10"},
],
),
(
["-2"],
[
{"type": "string", "value": "Page 1"},
{"type": "string", "value": "Page 2"},
],
),
(
[7],
[
{"type": "string", "value": "Page 7"},
],
),
(
["7"],
[
{"type": "string", "value": "Page 7"},
],
),
(
["-2", "9-", "7"],
[
{"type": "string", "value": "Page 1"},
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 7"},
{"type": "string", "value": "Page 9"},
{"type": "string", "value": "Page 10"},
],
),
(
["-5", "2-"],
[
{"type": "string", "value": "Page 1"},
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 3"},
{"type": "string", "value": "Page 4"},
{"type": "string", "value": "Page 5"},
{"type": "string", "value": "Page 6"},
{"type": "string", "value": "Page 7"},
{"type": "string", "value": "Page 8"},
{"type": "string", "value": "Page 9"},
{"type": "string", "value": "Page 10"},
],
),
(
[],
[
{"type": "string", "value": "Page 1"},
{"type": "string", "value": "Page 2"},
{"type": "string", "value": "Page 3"},
{"type": "string", "value": "Page 4"},
{"type": "string", "value": "Page 5"},
{"type": "string", "value": "Page 6"},
{"type": "string", "value": "Page 7"},
{"type": "string", "value": "Page 8"},
{"type": "string", "value": "Page 9"},
{"type": "string", "value": "Page 10"},
],
),
],
)
async def test_page_ranges_document(
bidi_session, inline, top_context, assert_pdf_content, ranges, expected
):
url = inline(
"""
<style>
div {page-break-after: always}
</style>
<div>Page 1</div>
<div>Page 2</div>
<div>Page 3</div>
<div>Page 4</div>
<div>Page 5</div>
<div>Page 6</div>
<div>Page 7</div>
<div>Page 8</div>
<div>Page 9</div>
<div>Page 10</div>"""
)
await bidi_session.browsing_context.navigate(
context=top_context["context"], url=url, wait="complete"
)
value = await bidi_session.browsing_context.print(
context=top_context["context"], page_ranges=ranges
)
await assert_pdf_content(value, expected)