def test_parse_interp(self, interpretations): xmls = [] with XMLBuilder("REGTEXT") as ctx: with ctx.EXTRACT(): ctx.P("Something") ctx.STARS() ctx.HD("Supplement I") ctx.HD("A") ctx.T1("a") ctx.P("b") xmls.append(ctx.xml) with XMLBuilder("REGTEXT") as ctx: ctx.P("Something") ctx.STARS() with ctx.SUBSECT(): ctx.HD("Supplement I") ctx.HD("A") ctx.T1("a") ctx.P("b") xmls.append(ctx.xml) with XMLBuilder("REGTEXT") as ctx: ctx.AMDPAR("1. In Supplement I to part 111, under...") ctx.P("Something") ctx.STARS() ctx.HD("SUPPLEMENT I") ctx.HD("A") ctx.T1("a") ctx.P("b") xmls.append(ctx.xml) with XMLBuilder("REGTEXT") as ctx: ctx.AMDPAR("1. In Supplement I to part 111, under...") ctx.P("Something") ctx.STARS() with ctx.APPENDIX(): ctx.HD("SUPPLEMENT I") ctx.HD("A") ctx.T1("a") ctx.P("b") ctx.PRTPAGE() xmls.append(ctx.xml) for xml in xmls: amendments.parse_interp('111', xml) root, nodes = interpretations.parse_from_xml.call_args[0] self.assertEqual(root.label, ['111', 'Interp']) self.assertEqual(['HD', 'T1', 'P'], [n.tag for n in nodes])
def test_parse_interp_subpart_confusion(self): with XMLBuilder("REGTEXT") as ctx: ctx.AMDPAR("1. In Supplement I to part 111, under Section 33, " "paragraph 5 is added.") ctx.HD("Supplement I") with ctx.SUBPART(): with ctx.SECTION(): ctx.SECTNO(u"ยง 111.33") ctx.SUBJECT("Stubby Subby") ctx.STARS() ctx.P("5. Some Content") interp = amendments.parse_interp('111', ctx.xml) self.assertEqual(1, len(interp.children)) c33 = interp.children[0] self.assertEqual(c33.label, ['111', '33', 'Interp']) self.assertEqual(1, len(c33.children)) c335 = c33.children[0] self.assertEqual(c335.label, ['111', '33', 'Interp', '5'])