def test_regulatory_citations(self, get_bucket, get_elasticsearch_connection): ao_document = { "document_id": 1, "category": "Final Opinion", "text": "A regulatory citation 11 CFR §9034.4(b)(4) and some text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao_document], } self.create_ao(1, ao) self.create_document(1, ao_document) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["regulatory_citations"] == [{ "title": 11, "part": 9034, "section": 4 }]
def test_pending_ao(self, get_bucket): expected_ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2017, "sort2": -1, "entities": [] } self.create_ao(1, expected_ao) actual_ao = next(get_advisory_opinions(None)) assert actual_ao == expected_ao
def test_statutory_citations(self, get_bucket, get_elasticsearch_connection): ao_document = { "document_id": 1, "category": "Final Opinion", "text": "A statutory citation 2 U.S.C. 431 and some text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao_document], } self.create_ao(1, ao) self.create_document(1, ao_document) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["statutory_citations"] == [{ 'title': 52, 'section': '30101' }]
def test_completed_ao_with_docs(self, get_bucket): ao_no = "2017-01" filename = "Some File.pdf" expected_document = { "document_id": 1, "category": "Final Opinion", "text": "Some Text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0), "url": "/files/legal/aos/{0}/{1}".format(ao_no, filename.replace(' ', '-')) } expected_ao = { "no": ao_no, "name": "An AO name", "summary": "An AO summary", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Final", "documents": [expected_document], } self.create_ao(1, expected_ao) self.create_document(1, expected_document, filename) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["is_pending"] is False assert actual_ao["status"] == "Final" actual_document = actual_ao["documents"][0] for key in expected_document: assert actual_document[key] == expected_document[key]
def test_ao_with_entities(self, get_bucket): expected_requestor_names = ["The Manchurian Candidate", "Federation of Interstate Truckers"] expected_requestor_types = ["Federal candidate/candidate committee/officeholder", "Labor Organization"] expected_commenter_names = ["Tom Troll", "Harry Troll"] expected_representative_names = ["Dewey Cheetham and Howe LLC"] expected_ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [], "requestor_names": expected_requestor_names, "requestor_types": expected_requestor_types, } self.create_ao(1, expected_ao) for i, _ in enumerate(expected_requestor_names): self.create_requestor(1, i + 1, expected_requestor_names[i], expected_requestor_types[i]) offset = len(expected_requestor_names) for i, _ in enumerate(expected_commenter_names): self.create_commenter(1, i + offset + 1, expected_commenter_names[i]) offset += len(expected_commenter_names) for i, _ in enumerate(expected_representative_names): self.create_representative(1, i + offset + 1, expected_representative_names[i]) actual_ao = next(get_advisory_opinions(None)) assert set(actual_ao["requestor_names"]) == set(expected_requestor_names) assert set(actual_ao["requestor_types"]) == set(expected_requestor_types) assert set(actual_ao["commenter_names"]) == set(expected_commenter_names) assert set(actual_ao["representative_names"]) == set(expected_representative_names)
def test_completed_ao_with_docs(self, get_bucket): expected_document = { "document_id": 1, "category": "Final Opinion", "text": "Some Text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } expected_ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": False, "documents": [expected_document], } self.create_ao(1, expected_ao) self.create_document(1, expected_document) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["is_pending"] is False actual_document = actual_ao["documents"][0] for key in expected_document: assert actual_document[key] == expected_document[key]
def test_ao_citations(self, get_bucket): ao1_document = { "document_id": 1, "category": "Final Opinion", "text": "Not an AO reference 1776-01", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao1 = { "no": "2017-01", "name": "1st AO name", "summary": "1st AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao1_document], } ao2_document = { "document_id": 2, "category": "Final Opinion", "text": "Reference to AO 2017-01", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao2 = { "no": "2017-02", "name": "2nd AO name", "summary": "2nd AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao2_document], } self.create_ao(1, ao1) self.create_document(1, ao1_document) self.create_ao(2, ao2) self.create_document(2, ao2_document) actual_aos = [ao for ao in get_advisory_opinions(None)] assert len(actual_aos) == 2 actual_ao1 = next(filter(lambda a: a["no"] == "2017-01", actual_aos)) actual_ao2 = next(filter(lambda a: a["no"] == "2017-02", actual_aos)) assert actual_ao1["ao_citations"] == [] assert actual_ao1["aos_cited_by"] == [{ "no": "2017-02", "name": "2nd AO name" }] assert actual_ao2["ao_citations"] == [{ "no": "2017-01", "name": "1st AO name" }] assert actual_ao2["aos_cited_by"] == []
def test_ao_citations(self, get_bucket): ao1_document = { "document_id": 1, "category": "Final Opinion", "text": "Not an AO reference 1776-01", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao1 = { "no": "2017-01", "name": "1st AO name", "summary": "1st AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao1_document], } ao2_document = { "document_id": 2, "category": "Final Opinion", "text": "Reference to AO 2017-01", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao2 = { "no": "2017-02", "name": "2nd AO name", "summary": "2nd AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao2_document], } self.create_ao(1, ao1) self.create_document(1, ao1_document) self.create_ao(2, ao2) self.create_document(2, ao2_document) actual_aos = [ao for ao in get_advisory_opinions(None)] assert len(actual_aos) == 2 actual_ao1 = next(filter(lambda a: a["no"] == "2017-01", actual_aos)) actual_ao2 = next(filter(lambda a: a["no"] == "2017-02", actual_aos)) assert actual_ao1["ao_citations"] == [] assert actual_ao1["aos_cited_by"] == [{"no": "2017-02", "name": "2nd AO name"}] assert actual_ao2["ao_citations"] == [{"no": "2017-01", "name": "1st AO name"}] assert actual_ao2["aos_cited_by"] == []
def test_regulatory_citations(self, get_bucket, get_elasticsearch_connection): ao_document = { "document_id": 1, "category": "Final Opinion", "text": "A regulatory citation 11 CFR §9034.4(b)(4) and some text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao_document], } self.create_ao(1, ao) self.create_document(1, ao_document) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["regulatory_citations"] == [{"title": 11, "part": 9034, "section": 4}]
def test_statutory_citations(self, get_bucket, get_elasticsearch_connection): ao_document = { "document_id": 1, "category": "Final Opinion", "text": "A statutory citation 2 U.S.C. 431 and some text", "description": "Some Description", "date": datetime.datetime(2017, 2, 9, 0, 0) } ao = { "no": "2017-01", "name": "An AO name", "summary": "An AO summary", "status": "Final", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "documents": [ao_document], } self.create_ao(1, ao) self.create_document(1, ao_document) actual_ao = next(get_advisory_opinions(None)) assert actual_ao["statutory_citations"] == [{'title': 52, 'section': 30101}]
def test_ao_offsets(self, get_bucket): expected_ao1 = { "no": "2015-01", "name": "AO name1", "summary": "AO summary1", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2015, "sort2": -1, "entities": [] } expected_ao2 = { "no": "2015-02", "name": "An AO name2", "summary": "An AO summary2", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2015, "sort2": -2, "entities": [] } expected_ao3 = { "no": "2016-01", "name": "An AO name3", "summary": "An AO summary3", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2016, "sort2": -1, "entities": [] } self.create_ao(1, expected_ao1) self.create_ao(2, expected_ao2) self.create_ao(3, expected_ao3) gen = get_advisory_opinions(None) assert (next(gen)) == expected_ao1 assert (next(gen)) == expected_ao2 assert (next(gen)) == expected_ao3 gen = get_advisory_opinions('2015-02') assert (next(gen)) == expected_ao2 assert (next(gen)) == expected_ao3
def test_ao_offsets(self, get_bucket): expected_ao1 = { "no": "2015-01", "name": "AO name1", "summary": "AO summary1", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2015, "sort2": -1, "entities": [] } expected_ao2 = { "no": "2015-02", "name": "An AO name2", "summary": "An AO summary2", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2015, "sort2": -2, "entities": [] } expected_ao3 = { "no": "2016-01", "name": "An AO name3", "summary": "An AO summary3", "request_date": datetime.date(2016, 6, 10), "issue_date": datetime.date(2016, 12, 15), "is_pending": True, "status": "Pending", "ao_citations": [], "statutory_citations": [], "regulatory_citations": [], "aos_cited_by": [], "documents": [], "requestor_names": [], "requestor_types": [], "commenter_names": [], "representative_names": [], "sort1": -2016, "sort2": -1, "entities": [] } self.create_ao(1, expected_ao1) self.create_ao(2, expected_ao2) self.create_ao(3, expected_ao3) gen = get_advisory_opinions(None) assert(next(gen)) == expected_ao1 assert(next(gen)) == expected_ao2 assert(next(gen)) == expected_ao3 gen = get_advisory_opinions('2015-02') assert(next(gen)) == expected_ao2 assert(next(gen)) == expected_ao3