def test_search_to_dict(self): s = Search() assert {} == s.to_dict() s = s.query("match", f=42) assert {"query": {"match": {"f": {"query": 42}}}} == s.to_dict() assert { "query": { "match": { "f": { "query": 42 } } }, "size": 10 } == s.to_dict(size=10) s = s.aggs("per_tag", "terms", field="f").aggs("max_score", "max", field="score") d = { "aggs": { "per_tag": { "terms": { "field": "f" }, "aggs": { "max_score": { "max": { "field": "score" } } }, } }, "query": { "match": { "f": { "query": 42 } } }, } self.assertEqual(d, s.to_dict()) s = Search().params(size=5) assert {"size": 5} == s.to_dict() s = s.params(from_=42) assert {"size": 5, "from": 42} == s.to_dict()
def test_aggs_allow_two_metric(): s = Search() s = s.aggs({"a": Max(field="a"), "b": Max(field="b")}) assert s.to_dict() == { "aggs": { "a": { "max": { "field": "a" } }, "b": { "max": { "field": "b" } } } }
def test_aggs_allow_two_metric(self): s = Search() s = s.aggs([Aggs("a", "max", field="a"), Aggs("b", "max", field="b")]) self.assertEqual( s.to_dict(), { "aggs": { "a": { "max": { "field": "a" } }, "b": { "max": { "field": "b" } } } }, )