<s> from unittest import TestCase <EOL> from corehq . apps . es . case_search import CaseSearchES , flatten_result <EOL> from corehq . apps . es . tests . utils import ElasticTestMixin <EOL> from corehq . elastic import SIZE_LIMIT <EOL> class TestCaseSearchES ( ElasticTestMixin , TestCase ) : <EOL> def setUp ( self ) : <EOL> self . es = CaseSearchES ( ) <EOL> def test_simple_case_property_query ( self ) : <EOL> json_output = { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" <EOL> } <EOL> } , <EOL> { <EOL> "<STR_LIT>" : { } <EOL> } <EOL> ] <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:bool>" : { <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:path>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT:name>" <EOL> } <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT:0>" <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> ] <EOL> } <EOL> } <EOL> } <EOL> } , <EOL> "<STR_LIT:size>" : SIZE_LIMIT <EOL> } <EOL> query = self . es . domain ( '<STR_LIT>' ) . case_property_query ( "<STR_LIT:name>" , "<STR_LIT>" ) <EOL> self . checkQuery ( query , json_output ) <EOL> def test_multiple_case_search_queries ( self ) : <EOL> json_output = { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" <EOL> } <EOL> } , <EOL> { <EOL> "<STR_LIT>" : { } <EOL> } <EOL> ] <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:bool>" : { <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:path>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT:name>" <EOL> } <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT:0>" <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> ] , <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:path>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" <EOL> } <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } <EOL> ] <EOL> } <EOL> } <EOL> } <EOL> } , <EOL> "<STR_LIT:size>" : SIZE_LIMIT <EOL> } <EOL> query = ( self . es . domain ( '<STR_LIT>' ) <EOL> . case_property_query ( "<STR_LIT:name>" , "<STR_LIT>" ) <EOL> . case_property_query ( "<STR_LIT>" , "<STR_LIT>" , clause = "<STR_LIT>" , fuzzy = True ) ) <EOL> self . checkQuery ( query , json_output ) <EOL> def test_flatten_result ( self ) : <EOL> expected = { '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } <EOL> self . assertEqual ( <EOL> flatten_result ( <EOL> { <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:key>' : '<STR_LIT:foo>' , '<STR_LIT:value>' : '<STR_LIT:bar>' } , <EOL> { '<STR_LIT:key>' : '<STR_LIT>' , '<STR_LIT:value>' : '<STR_LIT>' } ] <EOL> } <EOL> ) , <EOL> expected <EOL> ) </s>
