def test_with_lords(self): """Instantiate PrivateMembersBill with HTML of a PMB initiated in the lords.""" html_input = """<tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right" style="width: 1.06cm;" valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="text-align:right;"><span class="charBusinessItemNumber">2</span> </div> </td> <td valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="padding-left:12pt;"> LAW COMMISSION BILL [<span class="Italic">LORDS</span>]: As amended in the Public Bill Committee, to be considered. </div> </td> </tr> </table> </td> </tr> <tr> <td> <div class="paraMemberinCharge">Member in charge: Emily Thornberry </div> </td> </tr>""" expected_xml = '<private-members-bill id="test.2" lords="yes" speakerid="uk.org.publicwhip/member/1656" speakername="Emily Thornberry"><item-heading id="test.2.1">LAW COMMISSION BILL [LORDS]: As amended in the Public Bill Committee, to be considered.</item-heading><motion-member id="test.2.2">Emily Thornberry</motion-member></private-members-bill>' soup = BeautifulSoup.BeautifulSoup(html_input) trs = soup.findAll('tr', recursive=False) bill_item = PrivateMembersBill(trs[0], 'test', datetime.date(2009, 10, 16)) assert bill_item.id == 'test.2' expected_text = u'LAW COMMISSION BILL [LORDS]: As amended in the Public Bill Committee, to be considered.' assert bill_item.heading_text == expected_text, ( bill_item.heading_text, expected_text) bill_item.feed_member(trs[1]) assert bill_item.get_unique_member( ) == u'Emily Thornberry', bill_item.get_unique_member() expected_dom = xml.dom.minidom.parseString( expected_xml).documentElement # Doesn't really matter what this document looks like document = dom_impl.createDocument(None, 'test', None) received_dom = bill_item.get_dom(document) compare_doms(expected_dom, received_dom)
def test_simple_case(self): """Instantiate a PrivateMembersBill with two tr input (the most common case).""" html_input = """ <tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right" style="width: 1.06cm;" valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="text-align:right;"><span class="charBusinessItemNumber">3</span> </div> </td> <td valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="padding-left:12pt;"> CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered. </div> </td> </tr> </table> </td> </tr> <tr> <td> <div class="paraMemberinCharge">Member in charge: Mr Andrew Dismore </div> </td> </tr>""" expected_xml = u'<private-members-bill id="test.3" speakerid="uk.org.publicwhip/member/1628" speakername="Mr Andrew Dismore"><item-heading id="test.3.1">CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered.</item-heading><motion-member id="test.3.2">Mr Andrew Dismore</motion-member></private-members-bill>' soup = BeautifulSoup.BeautifulSoup(html_input) trs = soup.findAll('tr', recursive=False) bill_item = PrivateMembersBill(trs[0], 'test', datetime.date(2009, 10, 16)) assert bill_item.id == 'test.3' assert bill_item.heading_text == u'CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered.' bill_item.feed_member(trs[1]) assert bill_item.get_unique_member( ) == u'Mr Andrew Dismore', bill_item.get_unique_member() expected_dom = xml.dom.minidom.parseString( expected_xml).documentElement # Doesn't really matter what's in this doc. document = dom_impl.createDocument(None, 'test', None) received_dom = bill_item.get_dom(document) compare_doms(expected_dom, received_dom)
def test_with_lords(self): """Instantiate PrivateMembersBill with HTML of a PMB initiated in the lords.""" html_input = """<tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right" style="width: 1.06cm;" valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="text-align:right;"><span class="charBusinessItemNumber">2</span> </div> </td> <td valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="padding-left:12pt;"> LAW COMMISSION BILL [<span class="Italic">LORDS</span>]: As amended in the Public Bill Committee, to be considered. </div> </td> </tr> </table> </td> </tr> <tr> <td> <div class="paraMemberinCharge">Member in charge: Emily Thornberry </div> </td> </tr>""" expected_xml = '<private-members-bill id="test.2" lords="yes" speakerid="uk.org.publicwhip/member/1656" speakername="Emily Thornberry"><item-heading id="test.2.1">LAW COMMISSION BILL [LORDS]: As amended in the Public Bill Committee, to be considered.</item-heading><motion-member id="test.2.2">Emily Thornberry</motion-member></private-members-bill>' soup = BeautifulSoup.BeautifulSoup(html_input) trs = soup.findAll('tr', recursive=False) bill_item = PrivateMembersBill(trs[0], 'test', datetime.date(2009,10,16)) assert bill_item.id == 'test.2' expected_text = u'LAW COMMISSION BILL [LORDS]: As amended in the Public Bill Committee, to be considered.' assert bill_item.heading_text == expected_text, (bill_item.heading_text, expected_text) bill_item.feed_member(trs[1]) assert bill_item.get_unique_member() == u'Emily Thornberry', bill_item.get_unique_member() expected_dom = xml.dom.minidom.parseString(expected_xml).documentElement # Doesn't really matter what this document looks like document = dom_impl.createDocument(None, 'test', None) received_dom = bill_item.get_dom(document) compare_doms(expected_dom, received_dom)
def test_simple_case(self): """Instantiate a PrivateMembersBill with two tr input (the most common case).""" html_input = """ <tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right" style="width: 1.06cm;" valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="text-align:right;"><span class="charBusinessItemNumber">3</span> </div> </td> <td valign="top"> <div class="paraFBPrivateMembersBillItemHeading" style="padding-left:12pt;"> CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered. </div> </td> </tr> </table> </td> </tr> <tr> <td> <div class="paraMemberinCharge">Member in charge: Mr Andrew Dismore </div> </td> </tr>""" expected_xml = u'<private-members-bill id="test.3" speakerid="uk.org.publicwhip/member/1628" speakername="Mr Andrew Dismore"><item-heading id="test.3.1">CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered.</item-heading><motion-member id="test.3.2">Mr Andrew Dismore</motion-member></private-members-bill>' soup = BeautifulSoup.BeautifulSoup(html_input) trs = soup.findAll('tr', recursive=False) bill_item = PrivateMembersBill(trs[0], 'test', datetime.date(2009,10,16)) assert bill_item.id == 'test.3' assert bill_item.heading_text == u'CROWN EMPLOYMENT (NATIONALITY) BILL: As amended in the Public Bill Committee, to be considered.' bill_item.feed_member(trs[1]) assert bill_item.get_unique_member() == u'Mr Andrew Dismore', bill_item.get_unique_member() expected_dom = xml.dom.minidom.parseString(expected_xml).documentElement # Doesn't really matter what's in this doc. document = dom_impl.createDocument(None, 'test', None) received_dom = bill_item.get_dom(document) compare_doms(expected_dom, received_dom)