@@ -969,6 +969,74 @@ def test_page_groups():
969969 assert section .element_tag == 'section'
970970
971971
972+ @assert_no_logs
973+ def test_page_groups_blank_inside ():
974+ # Regression test for #1076.
975+ pages = render_pages ('''
976+ <style>
977+ @page { size: 100px }
978+ @page div { size: 50px }
979+ div { page: div }
980+ p { break-before: right }
981+ </style>
982+ <div>
983+ <p>1</p>
984+ <p>2</p>
985+ </div>
986+ ''' )
987+ assert len (pages ) == 3
988+ for page in pages :
989+ assert (page .width , page .height ) == (50 , 50 )
990+
991+
992+ @assert_no_logs
993+ def test_page_groups_blank_outside ():
994+ pages = render_pages ('''
995+ <style>
996+ @page { size: 100px }
997+ @page p { size: 50px }
998+ p { page: p; break-before: right }
999+ </style>
1000+ <div>
1001+ <p>1</p>
1002+ <p>2</p>
1003+ </div>
1004+ ''' )
1005+ page1 , page2 , page3 = pages
1006+ for page in (page1 , page3 ):
1007+ assert (page .width , page .height ) == (50 , 50 )
1008+ assert (page2 .width , page2 .height ) == (100 , 100 )
1009+
1010+
1011+ @assert_no_logs
1012+ def test_page_groups_first_nth ():
1013+ # Regression test for #2429.
1014+ pages = render_pages ('''
1015+ <style>
1016+ @page { size: 100px }
1017+ @page div { size: 50px }
1018+ @page :nth(2n+1 of div) { size: 30px }
1019+ div { page: div; break-before: right }
1020+ p { break-before: page }
1021+ </style>
1022+ <div>
1023+ <p>1</p>
1024+ <p>2</p>
1025+ <p>3</p>
1026+ </div>
1027+ <div>
1028+ <p>4</p>
1029+ <p>5</p>
1030+ </div>
1031+ ''' )
1032+ page1 , page2 , page3 , page4 , page5 , page6 = pages
1033+ for page in (page1 , page3 , page5 ):
1034+ assert (page .width , page .height ) == (30 , 30 )
1035+ for page in (page2 , page6 ):
1036+ assert (page .width , page .height ) == (50 , 50 )
1037+ assert (page4 .width , page4 .height ) == (100 , 100 )
1038+
1039+
9721040@assert_no_logs
9731041@pytest .mark .parametrize ('style, line_counts' , (
9741042 ('orphans: 2; widows: 2' , [4 , 3 ]),
0 commit comments