def get(self): if self.repo: query = self.query() if self.params.cursor: query.with_cursor(self.params.cursor) cursor = self.params.cursor try: for person in query: # query.cursor() returns a cursor which returns the entity # next to this "person" as the first result. next_cursor = query.cursor() was_expired = person.is_expired person.put_expiry_flags() if (utils.get_utcnow() - person.get_effective_expiry_date() > EXPIRED_TTL): person.wipe_contents() else: # treat this as a regular deletion. if person.is_expired and not was_expired: delete.delete_person(self, person) cursor = next_cursor except runtime.DeadlineExceededError: self.schedule_next_task(cursor) except datastore_errors.Timeout: # This exception is sometimes raised, maybe when the query # object live too long? self.schedule_next_task(cursor) else: for repo in model.Repo.list(): self.add_task_for_repo(repo, self.task_name(), self.ACTION)
def post(self, request, *args, **kwargs): del request, args, kwargs # unused q = model.Person.all(filter_expired=False).filter( 'repo =', self.env.repo) cursor = self.params.get('cursor', '') if cursor: q.with_cursor(cursor) try: now = utils.get_utcnow() for person in q: next_cursor = q.cursor() was_expired = person.is_expired person.put_expiry_flags() if (now - person.get_effective_expiry_date() > _EXPIRED_TTL): # Only original records should get to this point, since # other records should have been deleted altogether as soon # as they expired. Just in case the deletion task has failed # for three days though, check that it's an original record # to ensure we don't change the contents of a non-original # record. if person.is_original(): person.wipe_contents() else: person.delete_related_entities(delete_self=True) elif person.is_expired and not was_expired: # Since we're not sending notices, handler isn't really # needed. # TODO(nworden): check with Product about whether we want to # send notices for expirations. The current language # indicates it was designed for cases where someone manually # requested deletion of the record. delete.delete_person(None, person, send_notices=False) cursor = next_cursor except runtime.DeadlineExceededError: self.schedule_task(self.env.repo, cursor=cursor) except datastore_errors.Timeout: self.schedule_task(self.env.repo, cursor=cursor) return django.http.HttpResponse('')
def post(self, request, *args, **kwargs): del request, args, kwargs # unused q = model.Person.all(filter_expired=False).filter( 'repo =', self.env.repo) cursor = self.params.get('cursor', '') if cursor: q.with_cursor(cursor) try: now = utils.get_utcnow() for person in q: next_cursor = q.cursor() was_expired = person.is_expired person.put_expiry_flags() if (now - person.get_effective_expiry_date() > _EXPIRED_TTL): # Only original records should get to this point, since # other records should have been deleted altogether as soon # as they expired. Just in case the deletion task has failed # for three days though, check that it's an original record # to ensure we don't change the contents of a non-original # record. if person.is_original(): person.wipe_contents() else: person.delete_related_entities(delete_self=True) elif person.is_expired and not was_expired: # Since we're not sending notices, handler isn't really # needed. # TODO(nworden): check with Product about whether we want to # send notices for expirations. The current language # indicates it was designed for cases where someone manually # requested deletion of the record. delete.delete_person(None, person, send_notices=False) cursor = next_cursor except runtime.DeadlineExceededError: self._schedule_task(self.env.repo, cursor) except datastore_errors.Timeout: self._schedule_task(self.env.repo, cursor) return django.http.HttpResponse('')
def get(self): if self.repo: query = self.query() if self.params.cursor: query.with_cursor(self.params.cursor) for person in query: if quota.get_request_cpu_usage() > CPU_MEGACYCLES_PER_REQUEST: # Stop before running into the hard limit on CPU time per # request, to avoid aborting in the middle of an operation. # Add task back in, restart at current spot: self.schedule_next_task(query) break was_expired = person.is_expired person.put_expiry_flags() if (utils.get_utcnow() - person.get_effective_expiry_date() > EXPIRED_TTL): person.wipe_contents() else: # treat this as a regular deletion. if person.is_expired and not was_expired: delete.delete_person(self, person) else: for repo in model.Repo.list(): self.add_task_for_repo(repo, self.task_name(), self.ACTION)
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) db.put(self.p7) db.put(self.p8) db.put(self.p9) db.put(self.p10) db.put(self.p11) db.put(self.p12) db.put(self.p13) db.put(self.p14) db.put(self.p15) db.put(self.p16) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) full_text_search.add_record_to_index(self.p7) full_text_search.add_record_to_index(self.p8) full_text_search.add_record_to_index(self.p9) full_text_search.add_record_to_index(self.p10) full_text_search.add_record_to_index(self.p11) full_text_search.add_record_to_index(self.p12) full_text_search.add_record_to_index(self.p13) full_text_search.add_record_to_index(self.p14) full_text_search.add_record_to_index(self.p15) full_text_search.add_record_to_index(self.p16) # Search by alternate name results = full_text_search.search('haiti', 'Iorin', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name results = full_text_search.search('haiti', 'Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name results = full_text_search.search('haiti', 'Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name results = full_text_search.search('haiti', 'Minase Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name resutls = full_text_search.search('haiti', 'Iori Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by name & location results = full_text_search.search('haiti', 'Chihaya Arao', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search Cyrillic record by name & location results = full_text_search.search('haiti', 'Ritsuko Tottori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search by home_street only results = full_text_search.search('haiti', 'Kunaideme72', 5) assert not results # Search by home_city only results = full_text_search.search('haiti', 'Arao', 5) assert not results # Search by home_state only results = full_text_search.search('haiti', 'Kumamoto', 5) assert not results # Search by home_postal_code only results = full_text_search.search('haiti', '864-0003', 5) assert not results # Search by home_neighborhood only results = full_text_search.search('haiti', 'Araokeibajou', 5) assert not results # Search by home_country only results = full_text_search.search('haiti', 'Japan', 5) assert not results # Search in a different repository results = full_text_search.search('japan', 'Iori', 5) assert not results # Check no results results = full_text_search.search('haiti', 'Producer san', 5) assert not results # Search with no query text results = full_text_search.search('haiti', '', 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search('haiti', 'Ami', 5) assert not results # Check rank order (name match heigher than location match) results = full_text_search.search('haiti', 'Rin Shibuya', 5) assert [r.record_id for r in results] == \ ['haiti:0810', 'haiti:0203'] # Search romaji record by kanji name results = full_text_search.search('haiti', u'千早', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search romaji record by kanji name and location results = full_text_search.search('haiti', u'千早 荒尾', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Check rank order # (same kanji higher than different kanji with the same reading) results = full_text_search.search('haiti', u'菊地 真', 5) assert [r.record_id for r in results] == \ ['haiti/0829', 'haiti/1829'] results = full_text_search.search('haiti', u'菊地 眞', 5) assert [r.record_id for r in results] == \ ['haiti/1829', 'haiti/0829'] # Search kanji record by multi reading results = full_text_search.search('haiti', u'hagiwara', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) results = full_text_search.search('haiti', u'ogiwara', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) # Search romaji record by hiragana name and location results = full_text_search.search('haiti', u'ちはや あらお', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by full name without space results = full_text_search.search('haiti', 'HibikiGanaha', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1010']) # Search kanji record by full name without space results = full_text_search.search('haiti', u'AzusaMiura', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0719']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', u'RitsukoAkiduki', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search full name without space record by given name and family name results = full_text_search.search('haiti', u'Kotori Otonashi', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', u'OtonashiKotori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Chinese record by kanji results = full_text_search.search('haiti', u'真美', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0523'])
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) db.put(self.p7) db.put(self.p8) db.put(self.p9) db.put(self.p10) db.put(self.p11) db.put(self.p12) db.put(self.p13) db.put(self.p14) db.put(self.p15) db.put(self.p16) db.put(self.p17) db.put(self.p18) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) full_text_search.add_record_to_index(self.p7) full_text_search.add_record_to_index(self.p8) full_text_search.add_record_to_index(self.p9) full_text_search.add_record_to_index(self.p10) full_text_search.add_record_to_index(self.p11) full_text_search.add_record_to_index(self.p12) full_text_search.add_record_to_index(self.p13) full_text_search.add_record_to_index(self.p14) full_text_search.add_record_to_index(self.p15) full_text_search.add_record_to_index(self.p16) full_text_search.add_record_to_index(self.p17) full_text_search.add_record_to_index(self.p18) # Search by alternate name results = full_text_search.search('haiti', {'name': 'Iorin'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name results = full_text_search.search('haiti', {'name': 'Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name results = full_text_search.search('haiti', {'name': 'Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name results = full_text_search.search('haiti', {'name': 'Minase Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name resutls = full_text_search.search('haiti', {'name': 'Iori Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by a name contains location results = full_text_search.search('haiti', {'name': 'Chihaya Arao'}, 5) assert not results # Search by name & location results = full_text_search.search('haiti', {'name':'Chihaya', 'location': 'Arao'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search Cyrillic record by name & location results = full_text_search.search('haiti', {'name': 'Ritsuko', 'location': 'Tottori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search by home_street only ( input inside the name box) results = full_text_search.search('haiti', {'name': 'Kunaideme72'}, 5) assert not results # Search by home_city only ( input inside the location box) results = full_text_search.search('haiti', {'location': 'Arao'}, 5) assert not results # Search by home_state only ( input inside the location box) results = full_text_search.search('haiti', {'location': 'Kumamoto'}, 5) assert not results # Search by home_postal_code only ( input inside the name box) results = full_text_search.search('haiti', {'name': '864-0003'}, 5) assert not results # Search by home_neighborhood only ( input inside the location box) results = full_text_search.search( 'haiti', {'location': 'Araokeibajou'}, 5) assert not results # Search by home_country only ( input inside the name box) results = full_text_search.search('haiti', {'name': 'Japan'}, 5) assert not results # Search in a different repository results = full_text_search.search('japan', {'name': 'Iori'}, 5) assert not results # Check no results results = full_text_search.search('haiti', {'name': 'Producer san'}, 5) assert not results # Search with no query text results = full_text_search.search( 'haiti', {'name': '', 'location': ''}, 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search('haiti', {'name': 'Ami'}, 5) assert not results # Search with empty dict results = full_text_search.search('haiti', {}, 5) # Search by full name results = full_text_search.search('haiti', {'name': 'Rin Shibuya'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti:0810']) # Search romaji record by kanji name results = full_text_search.search('haiti', {'name': u'千早'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search romaji record by kanji name and location results = full_text_search.search('haiti', {'name': u'千早', 'location': u'荒尾'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Check rank order # (same kanji higher than different kanji with the same reading) results = full_text_search.search('haiti', {'name': u'菊地 真'}, 5) assert [r.record_id for r in results] == \ ['haiti/0829', 'haiti/1829'] results = full_text_search.search('haiti', {'name': u'菊地 眞'}, 5) assert [r.record_id for r in results] == \ ['haiti/1829', 'haiti/0829'] # Search kanji record by multi reading results = full_text_search.search('haiti', {'name': u'hagiwara'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) results = full_text_search.search('haiti', {'name': 'ogiwara'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) # Search romaji record by hiragana name and location results = full_text_search.search('haiti', {'name': u'ちはや', 'location': u'あらお'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by full name without space results = full_text_search.search('haiti', {'name': 'HibikiGanaha'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1010']) # Search kanji record by full name without space results = full_text_search.search('haiti', {'name': u'AzusaMiura'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0719']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', {'name': u'RitsukoAkiduki'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search full name without space record by given name and family name results = full_text_search.search('haiti', {'name': u'Kotori Otonashi'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', {'name': u'OtonashiKotori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Chinese record by kanji results = full_text_search.search('haiti', {'name': u'真美'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0523']) # Search Name with Location part contain a part of person's name results = full_text_search.search('haiti', {'name': 'Rin Shibuya', 'location': 'Shinjuku Rin'}, 5) assert not results # Input the name and location in the wrong box results = full_text_search.search('haiti', {'name': 'Shinjuku', 'location': 'Rin Shibuya'}, 5) assert not results # Search by Special Chinese Family Name # while records are written in English results = full_text_search.search('haiti', {'name': u'单鱼'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0911']) # Search by Pinyin(Chinese Romaji) # while records are written in Chinese results = full_text_search.search('haiti', {'name': u'Zeng Cheng'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0910']) # Search by Chinese # while records are written in Chinese results = full_text_search.search('haiti', {'name': u'曾诚'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0910'])
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) db.put(self.p7) db.put(self.p8) db.put(self.p9) db.put(self.p10) db.put(self.p11) db.put(self.p12) db.put(self.p13) db.put(self.p14) db.put(self.p15) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) full_text_search.add_record_to_index(self.p7) full_text_search.add_record_to_index(self.p8) full_text_search.add_record_to_index(self.p9) full_text_search.add_record_to_index(self.p10) full_text_search.add_record_to_index(self.p11) full_text_search.add_record_to_index(self.p12) full_text_search.add_record_to_index(self.p13) full_text_search.add_record_to_index(self.p14) full_text_search.add_record_to_index(self.p15) # Search by alternate name results = full_text_search.search('haiti', 'Iorin', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name results = full_text_search.search('haiti', 'Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name results = full_text_search.search('haiti', 'Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name results = full_text_search.search('haiti', 'Minase Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name resutls = full_text_search.search('haiti', 'Iori Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by name & location results = full_text_search.search('haiti', 'Chihaya Arao', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search Cyrillic record by name & location results = full_text_search.search('haiti', 'Ritsuko Tottori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search by home_street only results = full_text_search.search('haiti', 'Kunaideme72', 5) assert not results # Search by home_city only results = full_text_search.search('haiti', 'Arao', 5) assert not results # Search by home_state only results = full_text_search.search('haiti', 'Kumamoto', 5) assert not results # Search by home_postal_code only results = full_text_search.search('haiti', '864-0003', 5) assert not results # Search by home_neighborhood only results = full_text_search.search('haiti', 'Araokeibajou', 5) assert not results # Search by home_country only results = full_text_search.search('haiti', 'Japan', 5) assert not results # Search in a different repository results = full_text_search.search('japan', 'Iori', 5) assert not results # Check no results results = full_text_search.search('haiti', 'Producer san', 5) assert not results # Search with no query text results = full_text_search.search('haiti', '', 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search('haiti', 'Ami', 5) assert not results # Check rank order (name match heigher than location match) results = full_text_search.search('haiti', 'Rin Shibuya', 5) assert [r.record_id for r in results] == \ ['haiti:0810', 'haiti:0203'] # Search romaji record by kanji name results = full_text_search.search('haiti', u'千早', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search romaji record by kanji name and location results = full_text_search.search('haiti', u'千早 荒尾', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Check rank order # (same kanji higher than different kanji with the same reading) results = full_text_search.search('haiti', u'菊地 真', 5) assert [r.record_id for r in results] == \ ['haiti/0829', 'haiti/1829'] results = full_text_search.search('haiti', u'菊地 眞', 5) assert [r.record_id for r in results] == \ ['haiti/1829', 'haiti/0829'] # Search kanji record by multi reading results = full_text_search.search('haiti', u'hagiwara', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) results = full_text_search.search('haiti', u'ogiwara', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) # Search romaji record by hiragana name and location results = full_text_search.search('haiti', u'ちはや あらお', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by full name without space results = full_text_search.search('haiti', 'HibikiGanaha', 5) assert set([r.record_id for r in results]) == \ set(['haiti/1010']) # Search kanji record by full name without space results = full_text_search.search('haiti', u'AzusaMiura', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0719']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', u'RitsukoAkiduki', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search Chinese record by kanji results = full_text_search.search('haiti', u'真美', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0523'])
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) # Search by alternate name - p1 results = full_text_search.search('haiti', {'name': 'Iorin'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name -p1 results = full_text_search.search('haiti', {'name': 'Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name - p1 results = full_text_search.search('haiti', {'name': 'Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name - p1 results = full_text_search.search('haiti', {'name': 'Minase Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name - p1 resutls = full_text_search.search('haiti', {'name': 'Iori Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by a name contains location - p4 results = full_text_search.search('haiti', {'name': 'Chihaya Arao'}, 5) assert not results # Search by name & location - p4 results = full_text_search.search('haiti', { 'name': 'Chihaya', 'location': 'Arao' }, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by home_street only ( input inside the name box) - p4 results = full_text_search.search('haiti', {'name': 'Kunaideme72'}, 5) assert not results # Search by home_city only ( input inside the location box) - p4 results = full_text_search.search('haiti', {'location': 'Arao'}, 5) assert not results # Search by home_state only ( input inside the location box) - p4 results = full_text_search.search('haiti', {'location': 'Kumamoto'}, 5) assert not results # Search by home_postal_code only ( input inside the name box) - p4 results = full_text_search.search('haiti', {'name': '864-0003'}, 5) assert not results # Search by home_neighborhood only ( input inside the location box) - p4 results = full_text_search.search('haiti', {'location': 'Araokeibajou'}, 5) assert not results # Search by home_country only ( input inside the name box) - p4 results = full_text_search.search('haiti', {'name': 'Japan'}, 5) assert not results # Check no results results = full_text_search.search('haiti', {'name': 'Producer san'}, 5) assert not results # Search with no query text results = full_text_search.search('haiti', { 'name': '', 'location': '' }, 5) assert not results # Search deleted record - p3 delete.delete_person(self, self.p3) results = full_text_search.search('haiti', {'name': 'Ami'}, 5) assert not results # Search with empty dict results = full_text_search.search('haiti', {}, 5) # Search by full name - p5 results = full_text_search.search('haiti', {'name': 'Rin Shibuya'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti:0810']) # Search Name with Location part contain a part of person's name - p5 results = full_text_search.search('haiti', { 'name': 'Rin Shibuya', 'location': 'Shinjuku Rin' }, 5) assert not results # Input the name and location in the wrong box - p5 results = full_text_search.search('haiti', { 'name': 'Shinjuku', 'location': 'Rin Shibuya' }, 5) assert not results
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) # Search by alternate name results = full_text_search.search("haiti", "Iorin", 5) assert set([r.record_id for r in results]) == set(["haiti/0505"]) # Search by family name results = full_text_search.search("haiti", "Minase", 5) assert set([r.record_id for r in results]) == set(["haiti/0505"]) # Search by given name results = full_text_search.search("haiti", "Iori", 5) assert set([r.record_id for r in results]) == set(["haiti/0505"]) # Search by given name + family name results = full_text_search.search("haiti", "Minase Iori", 5) assert set([r.record_id for r in results]) == set(["haiti/0505"]) # Search by full name resutls = full_text_search.search("haiti", "Iori Minase", 5) assert set([r.record_id for r in results]) == set(["haiti/0505"]) # Search by name & location results = full_text_search.search("haiti", "Chihaya Arao", 5) assert set([r.record_id for r in results]) == set(["haiti/0225"]) # Search by home_street only results = full_text_search.search("haiti", "Kunaideme72", 5) assert not results # Search by home_city only results = full_text_search.search("haiti", "Arao", 5) assert not results # Search by home_state only results = full_text_search.search("haiti", "Kumamoto", 5) assert not results # Search by home_postal_code only results = full_text_search.search("haiti", "864-0003", 5) assert not results # Search by home_neighborhood only results = full_text_search.search("haiti", "Araokeibajou", 5) assert not results # Search by home_country only results = full_text_search.search("haiti", "Japan", 5) assert not results # Search in a different repository results = full_text_search.search("japan", "Iori", 5) assert not results # Check no results results = full_text_search.search("haiti", "Producer san", 5) assert not results # Search with no query text results = full_text_search.search("haiti", "", 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search("haiti", "Makoto", 5) assert not results # Search romaji record by kanji name results = full_text_search.search("haiti", u"千早", 5) assert set([r.record_id for r in results]) == set(["haiti/0225"]) # Search romaji record by kanji name and location results = full_text_search.search("haiti", u"千早 荒尾", 5) assert set([r.record_id for r in results]) == set(["haiti/0225"])
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) db.put(self.p7) db.put(self.p8) db.put(self.p9) db.put(self.p10) db.put(self.p11) db.put(self.p12) db.put(self.p13) db.put(self.p14) db.put(self.p15) db.put(self.p16) db.put(self.p17) db.put(self.p18) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) full_text_search.add_record_to_index(self.p7) full_text_search.add_record_to_index(self.p8) full_text_search.add_record_to_index(self.p9) full_text_search.add_record_to_index(self.p10) full_text_search.add_record_to_index(self.p11) full_text_search.add_record_to_index(self.p12) full_text_search.add_record_to_index(self.p13) full_text_search.add_record_to_index(self.p14) full_text_search.add_record_to_index(self.p15) full_text_search.add_record_to_index(self.p16) full_text_search.add_record_to_index(self.p17) full_text_search.add_record_to_index(self.p18) # Search by alternate name results = full_text_search.search('haiti', {'name': 'Iorin'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name results = full_text_search.search('haiti', {'name': 'Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name results = full_text_search.search('haiti', {'name': 'Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name results = full_text_search.search('haiti', {'name': 'Minase Iori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name resutls = full_text_search.search('haiti', {'name': 'Iori Minase'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by a name contains location results = full_text_search.search('haiti', {'name': 'Chihaya Arao'}, 5) assert not results # Search by name & location results = full_text_search.search('haiti', { 'name': 'Chihaya', 'location': 'Arao' }, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search Cyrillic record by name & location results = full_text_search.search('haiti', { 'name': 'Ritsuko', 'location': 'Tottori' }, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search by home_street only ( input inside the name box) results = full_text_search.search('haiti', {'name': 'Kunaideme72'}, 5) assert not results # Search by home_city only ( input inside the location box) results = full_text_search.search('haiti', {'location': 'Arao'}, 5) assert not results # Search by home_state only ( input inside the location box) results = full_text_search.search('haiti', {'location': 'Kumamoto'}, 5) assert not results # Search by home_postal_code only ( input inside the name box) results = full_text_search.search('haiti', {'name': '864-0003'}, 5) assert not results # Search by home_neighborhood only ( input inside the location box) results = full_text_search.search('haiti', {'location': 'Araokeibajou'}, 5) assert not results # Search by home_country only ( input inside the name box) results = full_text_search.search('haiti', {'name': 'Japan'}, 5) assert not results # Search in a different repository results = full_text_search.search('japan', {'name': 'Iori'}, 5) assert not results # Check no results results = full_text_search.search('haiti', {'name': 'Producer san'}, 5) assert not results # Search with no query text results = full_text_search.search('haiti', { 'name': '', 'location': '' }, 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search('haiti', {'name': 'Ami'}, 5) assert not results # Search with empty dict results = full_text_search.search('haiti', {}, 5) # Search by full name results = full_text_search.search('haiti', {'name': 'Rin Shibuya'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti:0810']) # Search romaji record by kanji name results = full_text_search.search('haiti', {'name': u'千早'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search romaji record by kanji name and location results = full_text_search.search('haiti', { 'name': u'千早', 'location': u'荒尾' }, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Check rank order # (same kanji higher than different kanji with the same reading) results = full_text_search.search('haiti', {'name': u'菊地 真'}, 5) assert [r.record_id for r in results] == \ ['haiti/0829', 'haiti/1829'] results = full_text_search.search('haiti', {'name': u'菊地 眞'}, 5) assert [r.record_id for r in results] == \ ['haiti/1829', 'haiti/0829'] # Search kanji record by multi reading results = full_text_search.search('haiti', {'name': u'hagiwara'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) results = full_text_search.search('haiti', {'name': 'ogiwara'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1224']) # Search romaji record by hiragana name and location results = full_text_search.search('haiti', { 'name': u'ちはや', 'location': u'あらお' }, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by full name without space results = full_text_search.search('haiti', {'name': 'HibikiGanaha'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/1010']) # Search kanji record by full name without space results = full_text_search.search('haiti', {'name': u'AzusaMiura'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0719']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', {'name': u'RitsukoAkiduki'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0623']) # Search full name without space record by given name and family name results = full_text_search.search('haiti', {'name': u'Kotori Otonashi'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Cyrillic record by full name without space results = full_text_search.search('haiti', {'name': u'OtonashiKotori'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0909']) # Search Chinese record by kanji results = full_text_search.search('haiti', {'name': u'真美'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0523']) # Search Name with Location part contain a part of person's name results = full_text_search.search('haiti', { 'name': 'Rin Shibuya', 'location': 'Shinjuku Rin' }, 5) assert not results # Input the name and location in the wrong box results = full_text_search.search('haiti', { 'name': 'Shinjuku', 'location': 'Rin Shibuya' }, 5) assert not results # Search by Special Chinese Family Name # while records are written in English results = full_text_search.search('haiti', {'name': u'单鱼'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0911']) # Search by Pinyin(Chinese Romaji) # while records are written in Chinese results = full_text_search.search('haiti', {'name': u'Zeng Cheng'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0910']) # Search by Chinese # while records are written in Chinese results = full_text_search.search('haiti', {'name': u'曾诚'}, 5) assert set([r.record_id for r in results]) == \ set(['haiti/0910'])
def test_search_by_name_only(self): db.put(self.p1) db.put(self.p2) db.put(self.p3) db.put(self.p4) db.put(self.p5) db.put(self.p6) full_text_search.add_record_to_index(self.p1) full_text_search.add_record_to_index(self.p2) full_text_search.add_record_to_index(self.p3) full_text_search.add_record_to_index(self.p4) full_text_search.add_record_to_index(self.p5) full_text_search.add_record_to_index(self.p6) # Search by alternate name results = full_text_search.search('haiti', 'Iorin', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by family name results = full_text_search.search('haiti', 'Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name results = full_text_search.search('haiti', 'Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by given name + family name results = full_text_search.search('haiti', 'Minase Iori', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by full name resutls = full_text_search.search('haiti', 'Iori Minase', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0505']) # Search by name & location results = full_text_search.search('haiti', 'Chihaya Arao', 5) assert set([r.record_id for r in results]) == \ set(['haiti/0225']) # Search by home_street only results = full_text_search.search('haiti', 'Kunaideme72', 5) assert not results # Search by home_city only results = full_text_search.search('haiti', 'Arao', 5) assert not results # Search by home_state only results = full_text_search.search('haiti', 'Kumamoto', 5) assert not results # Search by home_postal_code only results = full_text_search.search('haiti', '864-0003', 5) assert not results # Search by home_neighborhood only results = full_text_search.search('haiti', 'Araokeibajou', 5) assert not results # Search by home_country only results = full_text_search.search('haiti', 'Japan', 5) assert not results # Search in a different repository results = full_text_search.search('japan', 'Iori', 5) assert not results # Check no results results = full_text_search.search('haiti', 'Producer san', 5) assert not results # Search with no query text results = full_text_search.search('haiti', '', 5) assert not results # Search deleted record delete.delete_person(self, self.p5) results = full_text_search.search('haiti', 'Makoto', 5) assert not results