def test_get_indexes(self): s_obj = SM(TestPerson, in_=[self.repo1.working_dir]) self.assertEqual( s_obj.get_indexes(), [index_name( os.path.basename(self.repo1.working_dir), self.repo1.active_branch.name)])
def __init__(self, request): self.request = request self.language = request.locale_name self.settings = request.registry.settings es_host = self.settings.get('es.host', 'http://localhost:9200') self.es_settings = {'urls': [es_host]} repo_dir = self.settings.get('unicore.repos_dir', 'repos') repo_names = config_list(self.settings['unicore.content_repos']) self.all_repo_paths = map( lambda repo_name: os.path.join(repo_dir, repo_name), repo_names) self.all_index_prefixes = map( lambda repo_path_or_name: parse_repo_name(repo_path_or_name), repo_names) search_config = { 'in_': self.all_repo_paths, 'index_prefixes': self.all_index_prefixes } self.all_categories = SM(Category, **search_config).es(**self.es_settings) self.all_pages = SM(Page, **search_config).es(**self.es_settings) self.all_localisations = SM(Localisation, **search_config).es(**self.es_settings) self.available_languages = config_list( self.settings.get('available_languages', '')) self.featured_languages = config_list( self.settings.get('featured_languages', '')) self.display_languages = list( set(self.featured_languages) - set([self.language]))
def test_clone(self): s_obj = SM(TestPerson, in_=[self.repo1.working_dir], index_prefixes=[self.index_prefix1]) s_obj_cloned = s_obj._clone(next_step=('indexes', [])) self.assertFalse(s_obj is s_obj_cloned) self.assertNotEqual(s_obj.__dict__.pop('steps'), s_obj_cloned.__dict__.pop('steps')) self.assertEqual( s_obj.__dict__.pop('type').__name__, s_obj_cloned.__dict__.pop('type').__name__) self.assertEqual(s_obj.__dict__, s_obj_cloned.__dict__)
def test_clone(self): s_obj = SM( TestPerson, in_=[self.repo1.working_dir], index_prefixes=[self.index_prefix1]) s_obj_cloned = s_obj._clone(next_step=('indexes', [])) self.assertFalse(s_obj is s_obj_cloned) self.assertNotEqual( s_obj.__dict__.pop('steps'), s_obj_cloned.__dict__.pop('steps')) self.assertEqual( s_obj.__dict__.pop('type').__name__, s_obj_cloned.__dict__.pop('type').__name__) self.assertEqual(s_obj.__dict__, s_obj_cloned.__dict__)
def test_init(self): repos = [self.repo1, self.repo2] repo_workdirs = map(lambda r: r.working_dir, repos) s_obj = SM(TestPerson, in_=repo_workdirs) self.assertEqual([r.repo for r in s_obj.repos], [self.repo1, self.repo2]) self.assertEqual(s_obj.index_prefixes, [ os.path.basename(self.repo1.working_dir), os.path.basename(self.repo2.working_dir) ]) s_obj = SM(TestPerson, in_=repo_workdirs, index_prefixes=['i1', 'i2']) self.assertEqual([r.repo for r in s_obj.repos], [self.repo1, self.repo2]) self.assertEqual(s_obj.index_prefixes, ['i1', 'i2'])
def mk_paginator(self, results, page, **kwargs): workspace = self.mk_workspace() patch_count = patch.object(SM, 'count', return_value=len(results)) patch_count.start() self.addCleanup(patch_count.stop) results = SM(Category, in_=[workspace.working_dir]) return Paginator(results, page, **kwargs)
def test_get_repo_indexes(self): index1 = index_name(self.index_prefix1, self.repo1.active_branch.name) index2 = index_name(self.index_prefix2, self.repo2.active_branch.name) default_index1 = index_name( os.path.basename(self.repo1.working_dir), self.repo1.active_branch.name) s_obj = SM(TestPerson, in_=[self.repo1.working_dir]) self.assertEqual(s_obj.get_repo_indexes(), [default_index1]) s_obj = SM( TestPerson, in_=[self.repo1.working_dir, self.repo2.working_dir], index_prefixes=[self.index_prefix1, self.index_prefix2]) self.assertEqual( s_obj.get_repo_indexes(), [index1, index2]) self.assertEqual( index1, self.workspace1.im.index_name(self.repo1.active_branch.name))
def test_multi_index_query(self): excluded_workspace = self.mk_workspace() person1 = TestPerson({'age': 12, 'name': 'Foo'}) person2 = TestPerson({'age': 20, 'name': 'Foo Foo'}) person3 = TestPerson({'age': 25, 'name': 'Foo Foo Foo'}) self.workspace1.save(person1, 'Saving person 1') self.workspace2.save(person2, 'Saving person 2') excluded_workspace.save(person3, 'Saving person 3') # refreshes all indexes self.workspace1.im.es.indices.refresh() objects = SM( TestPerson, in_=[self.repo1.working_dir, self.repo2.working_dir], index_prefixes=[self.index_prefix1, self.index_prefix2]) \ .everything() self.assertEqual(len(objects), 2) persons = [obj.to_object() for obj in objects] persons.sort(key=lambda p: p.age) self.assertEqual(persons, [person1, person2])
def test_get_repo_indexes(self): index1 = index_name(self.index_prefix1, self.repo1.active_branch.name) index2 = index_name(self.index_prefix2, self.repo2.active_branch.name) default_index1 = index_name(os.path.basename(self.repo1.working_dir), self.repo1.active_branch.name) s_obj = SM(TestPerson, in_=[self.repo1.working_dir]) self.assertEqual(s_obj.get_repo_indexes(), [default_index1]) s_obj = SM(TestPerson, in_=[self.repo1.working_dir, self.repo2.working_dir], index_prefixes=[self.index_prefix1, self.index_prefix2]) self.assertEqual(s_obj.get_repo_indexes(), [index1, index2]) self.assertEqual( index1, self.workspace1.im.index_name(self.repo1.active_branch.name))
def test_get_es(self): s_obj = SM(TestPerson, in_=[]).es(urls=['http://localhost']) self.assertEqual(s_obj.get_es(), s_obj.type().get_es())
def test_mapping_type(self): s_obj = SM(TestPerson, in_=[]) self.assertTrue(issubclass(s_obj.type, ReadOnlyModelMappingType))
def test_get_indexes(self): s_obj = SM(TestPerson, in_=[self.repo1.working_dir]) self.assertEqual(s_obj.get_indexes(), [ index_name(os.path.basename(self.repo1.working_dir), self.repo1.active_branch.name) ])