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
        }]
Esempio n. 2
0
    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_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
Esempio n. 5
0
    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]
Esempio n. 6
0
    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):
        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)
Esempio n. 9
0
    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]
Esempio n. 10
0
    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"] == []
Esempio n. 11
0
    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"] == []
Esempio n. 12
0
    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}]
Esempio n. 13
0
    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}]
Esempio n. 14
0
    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
Esempio n. 15
0
    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