def test_build_supplement_intro_section():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Introduction", SOURCE='HD1')
        ctx.P("1. Some content. (a) Badly named")
        ctx.P("(b) Badly named")
        ctx.HD("Subpart A", SOURCE='HD1')
        ctx.HD("Section 737.13", SOURCE='HD2')
        ctx.child_from_string("<P><E>13(a) Some Stuff!</E></P>")
        ctx.P("1. 131313")
        ctx.HD("Appendix G", SOURCE='HD2')
        ctx.P("1. G")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 3
    h1, s13, g = tree.children

    assert h1.label == ['737', 'Interp', 'h1']
    assert s13.label == ['737', '13', 'Interp']
    assert g.label == ['737', 'G', 'Interp']

    assert len(h1.children) == 1
    assert h1.children[0].text == ('1. Some content. (a) Badly named\n\n'
                                   '(b) Badly named')
    assert h1.children[0].children == []

    assert len(s13.children) == 1
    assert s13.children[0].title == '13(a) Some Stuff!'
Пример #2
0
def test_build_supplement_intro_section():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Introduction", SOURCE='HD1')
        ctx.P("1. Some content. (a) Badly named")
        ctx.P("(b) Badly named")
        ctx.HD("Subpart A", SOURCE='HD1')
        ctx.HD("Section 737.13", SOURCE='HD2')
        ctx.child_from_string("<P><E>13(a) Some Stuff!</E></P>")
        ctx.P("1. 131313")
        ctx.HD("Appendix G", SOURCE='HD2')
        ctx.P("1. G")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 3
    h1, s13, g = tree.children

    assert h1.label == ['737', 'Interp', 'h1']
    assert s13.label == ['737', '13', 'Interp']
    assert g.label == ['737', 'G', 'Interp']

    assert len(h1.children) == 1
    assert h1.children[0].text == ('1. Some content. (a) Badly named\n\n'
                                   '(b) Badly named')
    assert h1.children[0].children == []

    assert len(s13.children) == 1
    assert s13.children[0].title == '13(a) Some Stuff!'
Пример #3
0
def test_build_supplement_tree_skip_levels():
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.HD("5(a)(1)(i) Access Device", SOURCE='HD2')
        ctx.P("1. Paragraph 111")
        ctx.HD("5(b) Other Devices", SOURCE='HD2')
        ctx.P("1. Paragraph 222")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    i5 = tree.children[0]
    assert i5.label == ['737', '5', 'Interp']
    assert len(i5.children) == 2
    i5a, i5b = i5.children

    assert i5a.label == ['737', '5', 'a', 'Interp']
    assert len(i5a.children) == 1
    i5a1 = i5a.children[0]

    assert i5a1.label == ['737', '5', 'a', '1', 'Interp']
    assert len(i5a1.children) == 1
    i5a1i = i5a1.children[0]

    assert i5a1i.label == ['737', '5', 'a', '1', 'i', 'Interp']
    assert len(i5a1i.children) == 1

    assert i5b.label == ['737', '5', 'b', 'Interp']
    assert len(i5b.children) == 1
Пример #4
0
def test_build_supplement_tree_spacing():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.child_from_string('<P>1.<E T="03">Phrase</E>. More Content</P>')
        ctx.child_from_string('<P>i. I like<PRTPAGE />ice cream</P>')
        ctx.P("A. Aaaaah")
        ctx.child_from_string('<P><E T="03">1.</E>More info</P>')
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    s5 = tree.children[0]
    assert len(s5.children) == 1

    s51 = s5.children[0]
    assert s51.text == "1. Phrase. More Content"
    assert len(s51.children) == 1

    s51i = s51.children[0]
    assert s51i.text == "i. I like ice cream"
    assert len(s51i.children) == 1

    s51ia = s51i.children[0]
    assert s51ia.text == "A. Aaaaah"
    assert len(s51ia.children) == 1

    s51ia1 = s51ia.children[0]
    assert s51ia1.text == "1. More info"
    assert s51ia1.children == []
def test_build_supplement_tree_skip_levels():
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.HD("5(a)(1)(i) Access Device", SOURCE='HD2')
        ctx.P("1. Paragraph 111")
        ctx.HD("5(b) Other Devices", SOURCE='HD2')
        ctx.P("1. Paragraph 222")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    i5 = tree.children[0]
    assert i5.label == ['737', '5', 'Interp']
    assert len(i5.children) == 2
    i5a, i5b = i5.children

    assert i5a.label == ['737', '5', 'a', 'Interp']
    assert len(i5a.children) == 1
    i5a1 = i5a.children[0]

    assert i5a1.label == ['737', '5', 'a', '1', 'Interp']
    assert len(i5a1.children) == 1
    i5a1i = i5a1.children[0]

    assert i5a1i.label == ['737', '5', 'a', '1', 'i', 'Interp']
    assert len(i5a1i.children) == 1

    assert i5b.label == ['737', '5', 'b', 'Interp']
    assert len(i5b.children) == 1
def test_build_supplement_tree_spacing():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.child_from_string('<P>1.<E T="03">Phrase</E>. More Content</P>')
        ctx.child_from_string('<P>i. I like<PRTPAGE />ice cream</P>')
        ctx.P("A. Aaaaah")
        ctx.child_from_string('<P><E T="03">1.</E>More info</P>')
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    s5 = tree.children[0]
    assert len(s5.children) == 1

    s51 = s5.children[0]
    assert s51.text == "1. Phrase. More Content"
    assert len(s51.children) == 1

    s51i = s51.children[0]
    assert s51i.text == "i. I like ice cream"
    assert len(s51i.children) == 1

    s51ia = s51i.children[0]
    assert s51ia.text == "A. Aaaaah"
    assert len(s51ia.children) == 1

    s51ia1 = s51ia.children[0]
    assert s51ia1.text == "1. More info"
    assert s51ia1.children == []
Пример #7
0
def test_build_supplement_tree():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.P("1. Paragraph 1")
        ctx.P("i. Paragraph i; A. Start of A")
        ctx.HD("5(a) Access Device", SOURCE='HD2')
        ctx.P("1. Paragraph 111")
        ctx.P("i. Content content")
        ctx.P("ii. More content")
        ctx.P("A. Aaaaah")
        ctx.child_from_string('<P><E T="03">1.</E> More info</P>')
        ctx.child_from_string('<P><E T="03">2.</E> Second info</P>')
        ctx.child_from_string('<P><E T="03">3. Keyterms</E></P>')
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    i5 = tree.children[0]
    assert i5.label == ['737', '5', 'Interp']
    assert len(i5.children) == 2

    i51, i5a = i5.children
    assert i51.label == ['737', '5', 'Interp', '1']
    assert len(i51.children) == 1
    i51i = i51.children[0]
    assert i51i.label == ['737', '5', 'Interp', '1', 'i']
    assert len(i51i.children) == 1
    i51ia = i51i.children[0]
    assert i51ia.label == ['737', '5', 'Interp', '1', 'i', 'A']
    assert i51ia.children == []

    assert i5a.label == ['737', '5', 'a', 'Interp']
    assert len(i5a.children) == 1
    i5a1 = i5a.children[0]
    assert i5a1.label == ['737', '5', 'a', 'Interp', '1']
    assert len(i5a1.children) == 2
    i5a1i, i5a1ii = i5a1.children
    assert i5a1i.label == ['737', '5', 'a', 'Interp', '1', 'i']
    assert i5a1i.children == []

    assert i5a1ii.label == ['737', '5', 'a', 'Interp', '1', 'ii']
    assert len(i5a1ii.children) == 1
    i5a1iia = i5a1ii.children[0]
    assert i5a1iia.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A']
    assert len(i5a1iia.children) == 3
    i5a1iia1, i5a1iia2, i5a1iia3 = i5a1iia.children
    assert i5a1iia1.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '1']
    assert i5a1iia1.tagged_text == '<E T="03">1.</E> More info'
    assert i5a1iia1.children == []
    assert i5a1iia2.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '2']
    assert i5a1iia2.tagged_text == '<E T="03">2.</E> Second info'
    assert i5a1iia2.children == []
    assert i5a1iia3.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '3']
    assert i5a1iia3.tagged_text == '<E T="03">3. Keyterms</E>'
    assert i5a1iia3.children == []
def test_build_supplement_tree():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Section 737.5 NASCAR", SOURCE='HD2')
        ctx.P("1. Paragraph 1")
        ctx.P("i. Paragraph i; A. Start of A")
        ctx.HD("5(a) Access Device", SOURCE='HD2')
        ctx.P("1. Paragraph 111")
        ctx.P("i. Content content")
        ctx.P("ii. More content")
        ctx.P("A. Aaaaah")
        ctx.child_from_string('<P><E T="03">1.</E> More info</P>')
        ctx.child_from_string('<P><E T="03">2.</E> Second info</P>')
        ctx.child_from_string('<P><E T="03">3. Keyterms</E></P>')
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    i5 = tree.children[0]
    assert i5.label == ['737', '5', 'Interp']
    assert len(i5.children) == 2

    i51, i5a = i5.children
    assert i51.label == ['737', '5', 'Interp', '1']
    assert len(i51.children) == 1
    i51i = i51.children[0]
    assert i51i.label == ['737', '5', 'Interp', '1', 'i']
    assert len(i51i.children) == 1
    i51ia = i51i.children[0]
    assert i51ia.label == ['737', '5', 'Interp', '1', 'i', 'A']
    assert i51ia.children == []

    assert i5a.label == ['737', '5', 'a', 'Interp']
    assert len(i5a.children) == 1
    i5a1 = i5a.children[0]
    assert i5a1.label == ['737', '5', 'a', 'Interp', '1']
    assert len(i5a1.children) == 2
    i5a1i, i5a1ii = i5a1.children
    assert i5a1i.label == ['737', '5', 'a', 'Interp', '1', 'i']
    assert i5a1i.children == []

    assert i5a1ii.label == ['737', '5', 'a', 'Interp', '1', 'ii']
    assert len(i5a1ii.children) == 1
    i5a1iia = i5a1ii.children[0]
    assert i5a1iia.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A']
    assert len(i5a1iia.children) == 3
    i5a1iia1, i5a1iia2, i5a1iia3 = i5a1iia.children
    assert i5a1iia1.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '1']
    assert i5a1iia1.tagged_text == '<E T="03">1.</E> More info'
    assert i5a1iia1.children == []
    assert i5a1iia2.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '2']
    assert i5a1iia2.tagged_text == '<E T="03">2.</E> Second info'
    assert i5a1iia2.children == []
    assert i5a1iia3.label == ['737', '5', 'a', 'Interp', '1', 'ii', 'A', '3']
    assert i5a1iia3.tagged_text == '<E T="03">3. Keyterms</E>'
    assert i5a1iia3.children == []
Пример #9
0
def test_build_supplement_tree_repeats():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Appendices G and H-Content</HD>", SOURCE='HD2')
        ctx.P("1. G:H")
        ctx.HD("Appendix G", SOURCE='HD2')
        ctx.P("1. G")
        ctx.HD("Appendix H", SOURCE='HD2')
        ctx.P("1. H")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 3
    aGH, aG, aH = tree.children
    assert aGH.label == ['737', 'G_H', 'Interp']
    assert aG.label == ['737', 'G', 'Interp']
    assert aH.label == ['737', 'H', 'Interp']
def test_build_supplement_tree_repeats():
    """Integration test"""
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Appendices G and H-Content</HD>", SOURCE='HD2')
        ctx.P("1. G:H")
        ctx.HD("Appendix G", SOURCE='HD2')
        ctx.P("1. G")
        ctx.HD("Appendix H", SOURCE='HD2')
        ctx.P("1. H")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 3
    aGH, aG, aH = tree.children
    assert aGH.label == ['737', 'G_H', 'Interp']
    assert aG.label == ['737', 'G', 'Interp']
    assert aH.label == ['737', 'H', 'Interp']
Пример #11
0
def test_build_supplement_tree_appendix_paragraphs():
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Appendix H", SOURCE='HD2')
        ctx.HD("(b) bbbbbbb", SOURCE='HD3')
        ctx.P("1. Paragraph b")
        ctx.HD("(b)(5) b5b5b5", SOURCE='HD3')
        ctx.P("1. Paragraph b5")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    ih = tree.children[0]
    assert ih.label == ['737', 'H', 'Interp']
    assert len(ih.children) == 1

    ihb = ih.children[0]
    assert ihb.label == ['737', 'H', 'b', 'Interp']
    assert len(ihb.children) == 2

    ihb1, ihb5 = ihb.children
    assert ihb1.label == ['737', 'H', 'b', 'Interp', '1']
    assert ihb5.label == ['737', 'H', 'b', '5', 'Interp']
def test_build_supplement_tree_appendix_paragraphs():
    with XMLBuilder('APPENDIX') as ctx:
        ctx.HD("Supplement I to Part 737-Official Interpretations",
               SOURCE='HED')
        ctx.HD("Appendix H", SOURCE='HD2')
        ctx.HD("(b) bbbbbbb", SOURCE='HD3')
        ctx.P("1. Paragraph b")
        ctx.HD("(b)(5) b5b5b5", SOURCE='HD3')
        ctx.P("1. Paragraph b5")
    tree = gpo_cfr.build_supplement_tree('737', ctx.xml)
    assert tree.label == ['737', 'Interp']
    assert len(tree.children) == 1

    ih = tree.children[0]
    assert ih.label == ['737', 'H', 'Interp']
    assert len(ih.children) == 1

    ihb = ih.children[0]
    assert ihb.label == ['737', 'H', 'b', 'Interp']
    assert len(ihb.children) == 2

    ihb1, ihb5 = ihb.children
    assert ihb1.label == ['737', 'H', 'b', 'Interp', '1']
    assert ihb5.label == ['737', 'H', 'b', '5', 'Interp']