def test_search_full_text(self): data = {'resource_id': self.data['resource_id'], 'q': 'annakarenina'} postparams = '%s=1' % json.dumps(data) auth = {'Authorization': str(self.sysadmin_user.apikey)} res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 1 results = [extract(result['records'][0], [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'])] assert results == [self.expected_records[0]], result['records'] data = {'resource_id': self.data['resource_id'], 'q': 'tolstoy'} postparams = '%s=1' % json.dumps(data) res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 2 results = [extract( record, [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'] ) for record in result['records']] assert results == self.expected_records, result['records'] expected_fields = [{u'type': u'int4', u'id': u'_id'}, {u'type': u'text', u'id': u'b\xfck'}, {u'type': u'text', u'id': u'author'}, {u'type': u'timestamp', u'id': u'published'}, {u'type': u'json', u'id': u'nested'}, {u'type': u'float4', u'id': u'rank'}] for field in expected_fields: assert field in result['fields'], field # test multiple word queries (connected with and) data = {'resource_id': self.data['resource_id'], 'plain': True, 'q': 'tolstoy annakarenina'} postparams = '%s=1' % json.dumps(data) res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 1 results = [extract( result['records'][0], [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'] )] assert results == [self.expected_records[0]], result['records'] for field in expected_fields: assert field in result['fields'], field
def test_search_full_text(self): data = {'resource_id': self.data['resource_id'], 'q': 'annakarenina'} postparams = '%s=1' % json.dumps(data) auth = {'Authorization': str(self.normal_user.apikey)} res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 1 results = [extract(result['records'][0], [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'])] assert results == [self.expected_records[0]], result['records'] data = {'resource_id': self.data['resource_id'], 'q': 'tolstoy'} postparams = '%s=1' % json.dumps(data) res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 2 results = [extract( record, [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'] ) for record in result['records']] assert results == self.expected_records, result['records'] expected_fields = [{u'type': u'int4', u'id': u'_id'}, {u'type': u'text', u'id': u'b\xfck'}, {u'type': u'text', u'id': u'author'}, {u'type': u'timestamp', u'id': u'published'}, {u'type': u'json', u'id': u'nested'}, {u'type': u'float4', u'id': u'rank'}] for field in expected_fields: assert field in result['fields'], field # test multiple word queries (connected with and) data = {'resource_id': self.data['resource_id'], 'plain': True, 'q': 'tolstoy annakarenina'} postparams = '%s=1' % json.dumps(data) res = self.app.post('/api/action/datastore_search', params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict['success'] is True result = res_dict['result'] assert result['total'] == 1 results = [extract( result['records'][0], [u'_id', u'author', u'b\xfck', u'nested', u'published', u'characters'] )] assert results == [self.expected_records[0]], result['records'] for field in expected_fields: assert field in result['fields'], field
def test_search_full_text(self): data = {"resource_id": self.data["resource_id"], "q": "annakarenina"} postparams = "%s=1" % json.dumps(data) auth = {"Authorization": str(self.normal_user.apikey)} res = self.app.post("/api/action/datastore_search", params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict["success"] is True result = res_dict["result"] assert result["total"] == 1 results = [ extract(result["records"][0], [u"_id", u"author", u"b\xfck", u"nested", u"published", u"characters"]) ] assert results == [self.expected_records[0]], result["records"] data = {"resource_id": self.data["resource_id"], "q": "tolstoy"} postparams = "%s=1" % json.dumps(data) res = self.app.post("/api/action/datastore_search", params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict["success"] is True result = res_dict["result"] assert result["total"] == 2 results = [ extract(record, [u"_id", u"author", u"b\xfck", u"nested", u"published", u"characters"]) for record in result["records"] ] assert results == self.expected_records, result["records"] expected_fields = [ {u"type": u"int4", u"id": u"_id"}, {u"type": u"text", u"id": u"b\xfck"}, {u"type": u"text", u"id": u"author"}, {u"type": u"timestamp", u"id": u"published"}, {u"type": u"json", u"id": u"nested"}, {u"type": u"float4", u"id": u"rank"}, ] for field in expected_fields: assert field in result["fields"], field # test multiple word queries (connected with and) data = {"resource_id": self.data["resource_id"], "plain": True, "q": "tolstoy annakarenina"} postparams = "%s=1" % json.dumps(data) res = self.app.post("/api/action/datastore_search", params=postparams, extra_environ=auth) res_dict = json.loads(res.body) assert res_dict["success"] is True result = res_dict["result"] assert result["total"] == 1 results = [ extract(result["records"][0], [u"_id", u"author", u"b\xfck", u"nested", u"published", u"characters"]) ] assert results == [self.expected_records[0]], result["records"] for field in expected_fields: assert field in result["fields"], field