Ejemplo n.º 1
0
def test_bill_by_openstates_url(django_assert_num_queries):
    with django_assert_num_queries(1):
        result = schema.execute(""" {
            bill(openstatesUrl:"https://openstates.org/ak/bills/2018/HB1") {
            id
            }
        }""")
        assert result.errors is None
        assert result.data["bill"]["id"] == "ocd-bill/1"
def test_people_by_name():
    result = schema.execute(''' {
        people(name: "Hank", first: 50) {
            edges { node { name } }
        }
    }
    ''')
    assert result.errors is None
    assert len(result.data['people']['edges']) == 1
Ejemplo n.º 3
0
def test_people_by_division_id():
    # Note: uses a fake divisionId that has two reps (one retired), only one should be returned
    result = schema.execute(""" {
        people(divisionId: "ocd-division/country:us/state:ak/sldu:b", first: 50) {
            edges { node { name } }
        }
    }
    """)
    assert len(result.data["people"]["edges"]) == 1
Ejemplo n.º 4
0
def test_bill_by_jurisdiction_name_session_identifier(django_assert_num_queries):
    with django_assert_num_queries(1):
        result = schema.execute(''' {
            bill(jurisdiction:"Alaska", session:"2018", identifier:"HB 1") {
                title
            }
        }''')
        assert result.errors is None
        assert result.data['bill']['title'] == 'Moose Freedom Act'
Ejemplo n.º 5
0
def test_people_by_name():
    result = schema.execute(""" {
        people(name: "Hank", first: 50) {
            edges { node { name } }
        }
    }
    """)
    assert result.errors is None
    assert len(result.data["people"]["edges"]) == 1
Ejemplo n.º 6
0
def test_bill_by_openstates_url(django_assert_num_queries):
    with django_assert_num_queries(1):
        result = schema.execute(''' {
            bill(openstatesUrl:"https://openstates.org/ak/bills/2018/HB1") {
            id
            }
        }''')
        assert result.errors is None
        assert result.data['bill']['id'] == 'ocd-bill/1'
Ejemplo n.º 7
0
def test_bills_total_count(django_assert_num_queries):
    with django_assert_num_queries(2):
        result = schema.execute("""{
            bills(first: 5) {
                totalCount
                edges { node { identifier } }
            }
        }""")
    assert result.data["bills"]["totalCount"] == 26
    assert len(result.data["bills"]["edges"]) == 5
Ejemplo n.º 8
0
def test_bill_by_jurisdiction_session_identifier_404():
    result = schema.execute(
        """ {
        bill(jurisdiction:"Alaska", session:"2018" identifier:"HB 404") {
            title
        }
    }"""
    )
    assert len(result.errors) == 1
    assert "does not exist" in result.errors[0].message
Ejemplo n.º 9
0
def test_bill_by_jurisdiction_session_identifier_incomplete():
    result = schema.execute(
        """ {
        bill(jurisdiction:"Alaska", identifier:"HB 1") {
            title
        }
    }"""
    )
    assert len(result.errors) == 1
    assert "must either pass" in result.errors[0].message
Ejemplo n.º 10
0
def test_bills_total_count(django_assert_num_queries):
    with django_assert_num_queries(2):
        result = schema.execute('''{
            bills(first: 5) {
                totalCount
                edges { node { identifier } }
            }
        }''')
    assert result.data['bills']['totalCount'] == 26
    assert len(result.data['bills']['edges']) == 5
Ejemplo n.º 11
0
def test_bill_by_jurisdiction_name_session_identifier(
        django_assert_num_queries):
    with django_assert_num_queries(1):
        result = schema.execute(""" {
            bill(jurisdiction:"Alaska", session:"2018", identifier:"HB 1") {
                title
            }
        }""")
        assert result.errors is None
        assert result.data["bill"]["title"] == "Moose Freedom Act"
Ejemplo n.º 12
0
def test_bill_by_jurisdiction_id_session_identifier(django_assert_num_queries):
    with django_assert_num_queries(1):
        result = schema.execute(""" {
            bill(jurisdiction:"ocd-jurisdiction/country:us/state:ak/government",
                 session:"2018",
                 identifier:"HB 1") {
                title
            }
        }""")
        assert result.errors is None
        assert result.data["bill"]["title"] == "Moose Freedom Act"
Ejemplo n.º 13
0
def test_bill_fts():
    result = schema.execute("""{
        bills(searchQuery: "gorgonzola", first:5) {
            edges {node {
                title
            }}
          }
        }""")
    assert result.errors is None
    bills = [n["node"] for n in result.data["bills"]["edges"]]
    assert len(bills) == 1
Ejemplo n.º 14
0
def test_bills_max_items():
    result = schema.execute(
        """{
        bills {
            edges { node { identifier } }
        }
    }"""
    )
    assert len(result.errors) == 1
    assert "first" in result.errors[0].message

    result = schema.execute(
        """{
        bills(first: 9001) {
            edges { node { identifier } }
        }
    }"""
    )
    assert len(result.errors) == 1
    assert "first" in result.errors[0].message
Ejemplo n.º 15
0
def test_bill_fts():
    result = schema.execute('''{
        bills(searchQuery: "moose", first:5) {
            edges {node {
                title
            }}
          }
        }''')
    assert result.errors is None
    bills = [n['node'] for n in result.data['bills']['edges']]
    assert len(bills) == 1
Ejemplo n.º 16
0
def test_bill_openstates_url(django_assert_num_queries):
    with django_assert_num_queries(2):
        result = schema.execute(""" {
            bill(jurisdiction:"ocd-jurisdiction/country:us/state:ak/government",
                 session:"2018",
                 identifier:"HB 1") {
            openstatesUrl
            }
        }""")
        assert result.errors is None
        assert (result.data["bill"]["openstatesUrl"] ==
                "https://openstates.org/ak/bills/2018/HB1")
Ejemplo n.º 17
0
def test_fragment_cost(django_assert_num_queries):
    result = schema.execute('''
        fragment JurisdictionFields on JurisdictionNode {
            first: organizations(first: 3) { edges { node { name } } }
            last: organizations(last: 3) { edges { node { name } } }
        }

        query jurisdictionsQuery { jurisdictions { edges { node { ...JurisdictionFields }}}}
    ''',
                            middleware=[QueryProtectionMiddleware(0)])
    assert len(result.errors) == 1
    assert '(6)' in str(result.errors[0])
Ejemplo n.º 18
0
def test_real_example_big_query(django_assert_num_queries):
    # this is a real query that was running that had issues in production as of April 2021
    # only variables have been changed to match test data
    query = """
query bills($jurisdiction: String, $session: String, $end_cursor: String, $updated_since: String) {
  bills(jurisdiction: $jurisdiction, session: $session, first: 85, after: $end_cursor, updatedSince: $updated_since) {
    bill_list: edges {
      bill: node {
        id
        legislativeSession {
          identifier
          name
          classification
          jurisdiction { url }
        }
        identifier
        fromOrganization { name classification }
        classification
        subject
        bill_summary: abstracts { abstract note date }
        otherTitles { title note }
        otherIdentifiers { identifier scheme note }
        actions {
          description
          date
          organization { id name extras links { note url } sources { note url } }
          classification
          order
          vote { id }
          relatedEntities { name entityType }
        }
        title
        relatedBills { identifier legislativeSession relationType }
        versions { note date links { mediaType url text } }
        sources { url note }
        createdAt
        updatedAt
        sources { note url }
        openstatesUrl
        documents { note date links { mediaType url text } }
        }
    }
    totalCount pageInfo { endCursor hasNextPage }
  } }"""
    variables = {
        "jurisdiction": "Alaska",
        "end_cursor": "",
        "updated_since": "1900-01-01",
    }
    with django_assert_num_queries(16):
        result = schema.execute(query, variables)
    assert result.errors is None
    assert result.data["bills"]["totalCount"] == 26
Ejemplo n.º 19
0
def test_people_by_party():
    result = schema.execute(""" {
        dems: people(memberOf: "Democratic", first: 50) {
            edges { node { name } }
        }
        reps: people(memberOf: "Republican", first: 50) {
            edges { node { name } }
        }
    }
    """)
    assert result.errors is None
    assert len(result.data["dems"]["edges"]) == 3
    assert len(result.data["reps"]["edges"]) == 4
Ejemplo n.º 20
0
def test_bills_by_chamber(django_assert_num_queries):
    with django_assert_num_queries(4):
        result = schema.execute(''' {
            lower: bills(chamber:"lower", first:50) {
                edges { node { title } }
            }
            upper: bills(chamber:"upper", first:50) {
                edges { node { title } }
            }
        }''')
    assert result.errors is None
    # 26 total bills created
    assert len(result.data['lower']['edges'] + result.data['upper']['edges']) == 26
Ejemplo n.º 21
0
def test_bills_by_session(django_assert_num_queries):
    with django_assert_num_queries(4):
        result = schema.execute(''' {
            y2018: bills(session:"2018", first:50) {
                edges { node { title } }
            }
            y2017: bills(session:"2017", first:50) {
                edges { node { title } }
            }
        }''')
    assert result.errors is None
    # 26 total bills created
    assert len(result.data['y2017']['edges'] + result.data['y2018']['edges']) == 26
Ejemplo n.º 22
0
def test_bills_order(django_assert_num_queries):
    with django_assert_num_queries(2):
        result = schema.execute(""" {
            ak: bills(jurisdiction:"Alaska", first: 50) {
                edges { node { updatedAt } }
            }
        }""")
    assert result.errors is None
    assert len(result.data["ak"]["edges"]) == 12
    # ensure updatedAt order is decreasing
    for i in range(11):
        assert (result.data["ak"]["edges"][i]["node"]["updatedAt"] >
                result.data["ak"]["edges"][i + 1]["node"]["updatedAt"])
Ejemplo n.º 23
0
def test_bills_by_classification(django_assert_num_queries):
    with django_assert_num_queries(4):
        result = schema.execute(''' {
            bills: bills(classification: "bill", first:50) {
                edges { node { title } }
            }
            resolutions: bills(classification: "resolution", first:50) {
                edges { node { title } }
            }
        }''')
    assert result.errors is None
    # 26 total bills created
    assert len(result.data['bills']['edges'] + result.data['resolutions']['edges']) == 26
Ejemplo n.º 24
0
def test_people_by_party():
    result = schema.execute(''' {
        dems: people(memberOf: "Democratic", first: 50) {
            edges { node { name } }
        }
        reps: people(memberOf: "Republican", first: 50) {
            edges { node { name } }
        }
    }
    ''')
    assert result.errors is None
    assert len(result.data['dems']['edges']) == 3
    assert len(result.data['reps']['edges']) == 4
Ejemplo n.º 25
0
def test_bills_by_jurisdiction(django_assert_num_queries):
    # 2 bills queries + 2 count queries
    with django_assert_num_queries(4):
        result = schema.execute(''' {
            ak: bills(jurisdiction:"Alaska", first: 50) {
                edges { node { title } }
            }
            wy: bills(jurisdiction:"ocd-jurisdiction/country:us/state:wy", first: 50) {
                edges { node { title } }
            }
        }''')
    assert result.errors is None
    # 26 total bills created
    assert len(result.data['ak']['edges'] + result.data['wy']['edges']) == 26
Ejemplo n.º 26
0
def test_bills_by_classification(django_assert_num_queries):
    with django_assert_num_queries(4):
        result = schema.execute(""" {
            bills: bills(classification: "bill", first:50) {
                edges { node { title } }
            }
            resolutions: bills(classification: "resolution", first:50) {
                edges { node { title } }
            }
        }""")
    assert result.errors is None
    # 26 total bills created
    assert (len(result.data["bills"]["edges"] +
                result.data["resolutions"]["edges"]) == 26)
Ejemplo n.º 27
0
def test_bills_by_jurisdiction(django_assert_num_queries):
    # 2 bills queries + 2 count queries
    with django_assert_num_queries(4):
        result = schema.execute(""" {
            ak: bills(jurisdiction:"Alaska", first: 50) {
                edges { node { title } }
            }
            wy: bills(jurisdiction:"ocd-jurisdiction/country:us/state:wy/government", first: 50) {
                edges { node { title } }
            }
        }""")
    assert result.errors is None
    # 26 total bills created
    assert len(result.data["ak"]["edges"] + result.data["wy"]["edges"]) == 26
Ejemplo n.º 28
0
def test_bills_pagination_backward():
    bills = []

    result = schema.execute('''{
        bills(last: 5) {
            edges { node { identifier } }
            pageInfo { startCursor hasPreviousPage }
        }
    }''')
    page = [n['node']['identifier'] for n in result.data['bills']['edges']]
    bills += page

    while result.data['bills']['pageInfo']['hasPreviousPage']:
        result = schema.execute('''{
            bills(last: 5, before:"%s") {
                edges { node { identifier } }
                pageInfo { startCursor hasPreviousPage }
            }
        }''' % result.data['bills']['pageInfo']['startCursor'])
        page = [n['node']['identifier'] for n in result.data['bills']['edges']]
        bills += page
        assert len(page) <= 5

    assert len(bills) == 26
Ejemplo n.º 29
0
def test_bills_pagination_forward():
    bills = []

    result = schema.execute('''{
        bills(first: 5) {
            edges { node { identifier } }
            pageInfo { endCursor hasNextPage }
        }
    }''')
    page = [n['node']['identifier'] for n in result.data['bills']['edges']]
    bills += page

    while result.data['bills']['pageInfo']['hasNextPage']:
        result = schema.execute('''{
            bills(first: 5, after:"%s") {
                edges { node { identifier } }
                pageInfo { endCursor hasNextPage }
            }
        }''' % result.data['bills']['pageInfo']['endCursor'])
        page = [n['node']['identifier'] for n in result.data['bills']['edges']]
        bills += page
        assert len(page) <= 5

    assert len(bills) == 26
Ejemplo n.º 30
0
def test_bills_pagination_backward():
    bills = []

    result = schema.execute("""{
        bills(last: 5) {
            edges { node { identifier } }
            pageInfo { startCursor hasPreviousPage }
        }
    }""")
    page = [n["node"]["identifier"] for n in result.data["bills"]["edges"]]
    bills += page

    while result.data["bills"]["pageInfo"]["hasPreviousPage"]:
        result = schema.execute("""{
            bills(last: 5, before:"%s") {
                edges { node { identifier } }
                pageInfo { startCursor hasPreviousPage }
            }
        }""" % result.data["bills"]["pageInfo"]["startCursor"])
        page = [n["node"]["identifier"] for n in result.data["bills"]["edges"]]
        bills += page
        assert len(page) <= 5

    assert len(bills) == 26