def test_get_fields_to_query(): field = Field( name="WAHL09", args={"year": 2017}, fields=["value", "PART04"], default_fields=False, ) subfields_string = field._get_fields_to_query(field) assert subfields_string == "WAHL09 (year: 2017){value PART04 }"
def more_complex_query(complex_query): query = complex_query source = Field("source", fields=["title_de"], return_type="Source") statistic2 = Field( name="BEV001", args={"statistics": "R12612"}, fields=["value", "year", source], default_fields=False, ) query.add_field(statistic2) return query
def test_add_fields_stepwise(patch_return_types): query = Query.region(region="11", default_fields=False) statistic1 = query.add_field("BEV001", default_fields=False) statistic1.add_field("year") statistic2 = Field( name="WAHL09", args={ "year": 2017, "PART04": "ALL" }, fields=["value", "PART04"], default_fields=False, return_type="WAHL09", ) query.add_field(statistic2) query2 = Query.region( region="11", fields=[ Field( name="BEV001", fields=["year"], default_fields=False, return_type="BEV001", ), Field( name="WAHL09", args={ "year": 2017, "PART04": "ALL" }, fields=["value", "PART04"], default_fields=False, return_type="WAHL09", ), ], default_fields=False, ) assert query.get_graphql_query() == query2.get_graphql_query() graphql_query = query.get_graphql_query() assert graphql_query[0] == re.sub( " ", "", """{ region (id: "11"){ BEV001 {year } WAHL09 (year: 2017, filter:{ PART04: { nin: []}}){value PART04 } } }""".replace("\n", ""), )
def field(): return Field( "WAHL09", args={"year": 2017}, fields=["value", "year", "PART04"], default_fields=False, return_type="WAHL09", )
def test_add_args_stepwise(): query = Query.region(region="11") statistic1 = query.add_field("BEV001") statistic1.add_field("year") statistic1.add_args({"year": 2017}) query2 = Query.region( region="11", fields=[Field(name="BEV001", args={"year": 2017}, fields=["year"])] ) assert query.get_graphql_query() == query2.get_graphql_query()
def test_get_complex_graphql_string_without_args(patch_return_types): field = Field(name="WAHL09", fields=["value"], default_fields=False) no_args_query = Query.region(region="09", fields=["id", "name", field], default_fields=False) graphql_query = no_args_query.get_graphql_query() assert graphql_query[0] == re.sub( " ", "", """{ region (id: "09"){ id name WAHL09 {value }} }""".replace("\n", ""), )
def test_multiple_filter_args(patch_return_types): statistic1 = Field( name="BETR09", args={"FRUNW2": ["FRUART0111", "FRUART0112"]}, fields=["FRUNW2", "value", "year"], default_fields=False, ) multiple_args_query = Query.region(region="02", fields=[statistic1], default_fields=False) graphql_query = multiple_args_query.get_graphql_query() assert graphql_query[0] == re.sub( " ", "", """{ region (id: "02"){ BETR09 (FRUNW2: [FRUART0111, FRUART0112]){FRUNW2 value year } } }""".replace("\n", ""), )
def test_filter_for_all(query): field = Field( name="WAHL09", args={"year": 2017, "PART04": "ALL"}, fields=["value", "PART04"], default_fields=False, return_type="WAHL09", ) query = Query.region(region="09", fields=["id", "name", field]) graphql_query = query.get_graphql_query() assert graphql_query[0] == re.sub( " ", "", """{ region (id: "09"){ id name WAHL09 ( year: 2017, filter:{ PART04: { nin: []}}){ value PART04 } } }""".replace( "\n", "" ), )
def field_default(): return Field("WAHL09", args={"year": 2017}, fields=["PART04"], return_type="WAHL09")