def test_dotfield(self):
# /query service
# default dotfield=0
rdefault = self.json_ok(self.get_ok(self.api +
'/query?q=ccnk&fields=refseq.rna'))
# force no dotfield
rfalse = self.json_ok(self.get_ok(self.api +
'/query?q=ccnk&fields=refseq.rna&dotfield=false'))
# force dotfield
rtrue = self.json_ok(self.get_ok(self.api +
'/query?q=ccnk&fields=refseq.rna&dotfield=true'))
# check defaults and bool params
# TODO: put this in json_ok as post-process filter ?
for d in [rdefault,rfalse,rtrue]:
for h in d["hits"]:
del h["_score"]
eq_(rdefault["hits"], rfalse["hits"])
# check struct
assert "refseq.rna" in rtrue["hits"][0].keys()
assert "refseq" in rdefault["hits"][0].keys()
assert "rna" in rdefault["hits"][0]["refseq"].keys()
# TODO: no fields but dotfield => dotfield results
# TODO: fields with dot but no dotfield => dotfield results
# /gene service
rdefault = self.json_ok(self.get_ok(self.api +
'/gene/1017?filter=symbol,go.MF'))
rtrue = self.json_ok(self.get_ok(self.api +
'/gene/1017?filter=symbol,go.MF&dotfield=true'))
rfalse = self.json_ok(self.get_ok(self.api +
'/gene/1017?filter=symbol,go.MF&dotfield=false'))
# sharding makes scoring slightly variable
rdefault.pop("_score")
rfalse.pop("_score")
eq_(rdefault, rfalse)
assert "go.MF.term" in rtrue.keys()
assert "go" in rdefault.keys()
assert "MF" in rdefault["go"].keys()
评论列表
文章目录