"""Test the CSS cross references using target-*() functions.""" from .testing_utils import FakeHTML, assert_no_logs @assert_no_logs def test_target_counter(): document = FakeHTML(string='''
''') page, = document.render().pages html, = page._page_box.children body, = html.children div1, div2, div3, div4 = body.children before = div1.children[0].children[0].children[0] assert before.text == '4' before = div2.children[0].children[0].children[0] assert before.text == 'test 1' before = div3.children[0].children[0].children[0] assert before.text == 'iv' before = div4.children[0].children[0].children[0] assert before.text == '3' @assert_no_logs def test_target_counter_attr(): document = FakeHTML(string='''
''') page, = document.render().pages html, = page._page_box.children body, = html.children div1, div2, div3, div4 = body.children before = div1.children[0].children[0].children[0] assert before.text == '4' before = div2.children[0].children[0].children[0] assert before.text == '1' before = div3.children[0].children[0].children[0] assert before.text == '2' before = div4.children[0].children[0].children[0] assert before.text == 'c' @assert_no_logs def test_target_counters(): document = FakeHTML(string='''
''') page, = document.render().pages html, = page._page_box.children body, = html.children div1, div2, div3, div4 = body.children before = div1.children[1].children[0].children[0].children[0] assert before.text == '4.2' before = div2.children[0].children[0].children[0].children[0] assert before.text == '3' before = div3.children[0].children[0].children[0] assert before.text == 'b.a' before = div4.children[1].children[0].children[0].children[0] assert before.text == '12' @assert_no_logs def test_target_text(): document = FakeHTML(string='''
1 Chapter 1
2 Chapter 2
3 Chapter 3
4 Chapter 4
''') page, = document.render().pages html, = page._page_box.children body, = html.children a1, div1, a2, div2, div3, a3, div4, a4 = body.children before = a1.children[0].children[0].children[0] assert before.text == 'test 4 Chapter 4' before = a2.children[0].children[0].children[0] assert before.text == 'wow' assert len(a3.children[0].children[0].children) == 0 before = a4.children[0].children[0].children[0] assert before.text == '1' @assert_no_logs def test_target_float(): document = FakeHTML(string='''
link

abc

''') page, = document.render().pages html, = page._page_box.children body, = html.children div, h1 = body.children line, = div.children inline, = line.children text_box, after = inline.children assert text_box.text == 'link' assert after.children[0].children[0].text == '1'