def test_simple_query_correct_or(): """Validates that the ES query for "OR" is correct """ result = build_simple_query( {"multiple": { "name.family": ["Donald", "Chalmers"] }}) assert result == { "bool": { "should": [ { "simple_query_string": { "query": '"Donald"', "fields": ["name.family"], "flags": "PHRASE", } }, { "simple_query_string": { "query": '"Chalmers"', "fields": ["name.family"], "flags": "PHRASE", } }, ] } }
def test_composite_query_pipe(): """Validates that the ES query with token | is correct """ result = build_simple_query( {"contained.code.coding": ["http://snomed.info/sct|324252006"]}) assert result == { "bool": { "must": [ { "simple_query_string": { "query": '"http://snomed.info/sct"', "fields": ["contained.code.coding.system"], "flags": "PHRASE", } }, { "simple_query_string": { "query": '"324252006"', "fields": [ "contained.code.coding.code", "contained.code.coding.value" ], "flags": "PHRASE", } }, ] } }
def test_simple_query_contains(): """Validates that the ES query is correct with modifier contains """ result = build_simple_query({"name.family:contains": ["Dona"]}) assert result == { "query_string": { "query": "*Dona*", "fields": ["name.family"] } }
def test_simple_query_string(): """Validates that the ES query is correct""" result = build_simple_query({"birthDate": ["1974-12-25"]}) assert result == { "simple_query_string": { "fields": ["birthDate"], "query": '"1974-12-25"', "flags": "PHRASE" } }
def test_simple_query_identifier(): """Validates that the ES query is correct with modifier contains """ result = build_simple_query( {"managingOrganization:identifier": ["urn:oid:0.7.6.5.4.3.2|98765"]}) assert result == { "simple_query_string": { "query": '"urn:oid:0.7.6.5.4.3.2|98765"', "fields": ["managingOrganization.identifier.value"], "flags": "PHRASE", } }
def test_composite_query_modifiers(): """Validates that the ES query for "AND" with modifiers is correct """ result = build_simple_query({"birthDate": ["lt20200101", "gt20100101"]}) assert result == { "bool": { "must": [ { "range": { "birthDate": { "lt": "20200101" } } }, { "range": { "birthDate": { "gt": "20100101" } } }, ] } }
def test_basic_float_query(): result = build_simple_query({"value": [3.5]}) assert result == {"match": {"value": 3.5}}
def test_basic_int_query(): result = build_simple_query({"value": [3]}) assert result == {"match": {"value": 3}}
def test_core_query_output(): """Validates that the output of build_element_query is a dictionary """ result = build_simple_query({"gender": ["female"]}) assert isinstance(result, Mapping)
def test_simple_query_eq(): """Validates that the ES query is correct with modifier 'eq' """ result = build_simple_query({"birthDate": ["eq1974-12-25"]}) assert result == {"match": {"birthDate": "1974-12-25"}}
def test_simple_query_lt(): """Validates that the ES query is correct with modifier 'lt' """ result = build_simple_query({"birthDate": ["lt1974-12-25"]}) assert result == {"range": {"birthDate": {"lt": "1974-12-25"}}}