Example #1
0
 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)])
Example #2
0
    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]))
Example #3
0
    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__)
Example #4
0
    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__)
Example #5
0
    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'])
Example #6
0
 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)
Example #7
0
    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))
Example #8
0
    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])
Example #9
0
    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))
Example #10
0
 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())
Example #11
0
 def test_mapping_type(self):
     s_obj = SM(TestPerson, in_=[])
     self.assertTrue(issubclass(s_obj.type, ReadOnlyModelMappingType))
Example #12
0
 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)
     ])
Example #13
0
 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())