Skip to content
Snippets Groups Projects
Commit 51da60b64969 authored by Adrien Di Mascio's avatar Adrien Di Mascio
Browse files

[tests] fix parent tests

parent b0b8d7027869
No related branches found
No related tags found
No related merge requests found
......@@ -61,7 +61,8 @@
must_not = []
should = []
cutoff_frequency = .001
minimum_should_match = "40%"
# https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl-minimum-should-match.html
minimum_should_match = "1"
# proximity booster - phrase with slop=50
phrase_query = Q('multi_match',
query=query,
......
# flake8: noqa
from __future__ import print_function
......@@ -2,3 +2,2 @@
import hashlib
import time
......@@ -4,5 +3,4 @@
import time
from six import text_type as unicode
from cubicweb.devtools import testlib
from cubicweb.cwconfig import CubicWebConfiguration
......@@ -6,8 +4,9 @@
from cubicweb.devtools import testlib
from cubicweb.cwconfig import CubicWebConfiguration
from cubicweb.predicates import is_instance
from cubes.elasticsearch.search_helpers import compose_search
from elasticsearch_dsl import Search
from cubes.elasticsearch.es import CUSTOM_ATTRIBUTES
......@@ -9,7 +8,9 @@
from cubes.elasticsearch.search_helpers import compose_search
from elasticsearch_dsl import Search
from cubes.elasticsearch.es import CUSTOM_ATTRIBUTES
from cubes.elasticsearch.entities import IFullTextIndexSerializable
CUSTOM_ATTRIBUTES['Blog'] = ('title',)
......@@ -14,5 +15,14 @@
CUSTOM_ATTRIBUTES['Blog'] = ('title',)
class BlogFTIAdapter(IFullTextIndexSerializable):
__select__ = (IFullTextIndexSerializable.__select__ &
is_instance('BlogEntry'))
def update_parent_info(self, data, entity):
data['parent'] = entity.entry_of[0].eid
class ParentsSearchTC(testlib.CubicWebTC):
def setup_database(self):
......@@ -27,15 +37,16 @@
def test_parent_search(self):
# self.vid_validators['esearch'] = lambda: None
with self.admin_access.cnx() as cnx:
indexer = cnx.vreg['es'].select('indexer', cnx)
indexer.get_connection()
indexer.create_index(custom_settings={
'mappings': {
'BlogEntry': {'_parent':{"type":"Blog"}},
}
})
test_structure = {
u'A': [u'Paris ceci', u'Nantes', u'Toulouse'],
u'B': [u'Paris cela'],
u'C': [u'Paris autre', u'Paris plage']
with self.temporary_appobjects(BlogFTIAdapter):
indexer = cnx.vreg['es'].select('indexer', cnx)
indexer.get_connection()
indexer.create_index(custom_settings={
'mappings': {
'BlogEntry': {'_parent': {"type": "Blog"}},
}
})
test_structure = {
u'A': [u'Paris ceci', u'Nantes', u'Toulouse'],
u'B': [u'Paris cela'],
u'C': [u'Paris autre', u'Paris plage'],
}
......@@ -41,26 +52,26 @@
}
for fa_title, facomp_contents in test_structure.items():
blog = cnx.create_entity('Blog',
title=fa_title)
for facomp_content in facomp_contents:
cnx.create_entity('BlogEntry',
entry_of=blog,
title=facomp_content,
content=facomp_content)
cnx.commit()
time.sleep(2) # TODO find a way to have synchronous operations in unittests
for query, number_of_results, first_result in (("Paris", 3, "C"),
("Nantes", 1, "A")):
search = compose_search(Search(),
query,
parents_for="BlogEntry",
fields=['_all'],
fuzzy=True)
import json
print json.dumps(search.to_dict())
self.assertEquals(len(search.execute()), number_of_results)
self.assertEquals(search.execute().to_dict()['hits']['hits'][0]['_source']['title'],
first_result)
for fa_title, facomp_contents in test_structure.items():
blog = cnx.create_entity('Blog',
title=fa_title)
for facomp_content in facomp_contents:
cnx.create_entity('BlogEntry',
entry_of=blog,
title=facomp_content,
content=facomp_content)
cnx.commit()
time.sleep(2) # TODO find a way to have synchronous operations in unittests
for query, number_of_results, first_result in (("Paris", 3, "C"),
("Nantes", 1, "A")):
search = compose_search(Search(index=self.config['index-name'],
doc_type='Blog'),
query,
parents_for="BlogEntry",
fields=['_all'],
fuzzy=True)
import json
self.assertEquals(len(search.execute()), number_of_results)
self.assertEquals(search.execute().to_dict()['hits']['hits'][0]['_source']['title'],
first_result)
def tearDown(self):
with self.admin_access.cnx() as cnx:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment