Beispiel #1
0
 def get_results(self):
     backend = ElasticsearchSearchBackend({})
     query = mock.MagicMock()
     query.queryset = models.SearchTest.objects.all()
     query.get_query.return_value = 'QUERY'
     query.get_sort.return_value = None
     return backend.results_class(backend, query)
Beispiel #2
0
    def test_urls(self):
        # This test backwards compatibility with old URLS setting
        backend = ElasticsearchSearchBackend(params={
            'URLS': [
                'http://*****:*****@elasticsearch.mysite.com',
                'https://elasticsearch.mysite.com/hello',
            ],
        })

        self.assertEqual(len(backend.hosts), 4)
        self.assertEqual(backend.hosts[0]['host'], 'localhost')
        self.assertEqual(backend.hosts[0]['port'], 12345)
        self.assertEqual(backend.hosts[0]['use_ssl'], False)

        self.assertEqual(backend.hosts[1]['host'], '127.0.0.1')
        self.assertEqual(backend.hosts[1]['port'], 54321)
        self.assertEqual(backend.hosts[1]['use_ssl'], True)

        self.assertEqual(backend.hosts[2]['host'], 'elasticsearch.mysite.com')
        self.assertEqual(backend.hosts[2]['port'], 80)
        self.assertEqual(backend.hosts[2]['use_ssl'], False)
        self.assertEqual(backend.hosts[2]['http_auth'], ('username', 'password'))

        self.assertEqual(backend.hosts[3]['host'], 'elasticsearch.mysite.com')
        self.assertEqual(backend.hosts[3]['port'], 443)
        self.assertEqual(backend.hosts[3]['use_ssl'], True)
        self.assertEqual(backend.hosts[3]['url_prefix'], '/hello')
Beispiel #3
0
    def test_default_settings(self):
        backend = ElasticsearchSearchBackend(params={})

        self.assertEqual(len(backend.hosts), 1)
        self.assertEqual(backend.hosts[0]['host'], 'localhost')
        self.assertEqual(backend.hosts[0]['port'], 9200)
        self.assertEqual(backend.hosts[0]['use_ssl'], False)
Beispiel #4
0
    def test_default_index_settings_override(self):
        backend = ElasticsearchSearchBackend(params={
            'INDEX_SETTINGS': {
                "settings": {  # Already existing key
                    "number_of_shards": 2,  # New key
                    "analysis": {  # Already existing key
                        "analyzer": {  # Already existing key
                            "edgengram_analyzer": {  # Already existing key
                                "tokenizer": "standard"  # Key redefinition
                            }
                        }
                    }
                }
            }
        })

        # Check structure
        self.assertIn("number_of_shards", backend.settings["settings"].keys())
        self.assertIn("analysis", backend.settings["settings"].keys())
        self.assertIn("analyzer", backend.settings["settings"]["analysis"].keys())
        self.assertIn("edgengram_analyzer", backend.settings["settings"]["analysis"]["analyzer"].keys())
        self.assertIn("tokenizer", backend.settings["settings"]["analysis"]["analyzer"]["edgengram_analyzer"].keys())
        # Check values
        self.assertEqual(backend.settings["settings"]["number_of_shards"], 2)
        self.assertEqual(backend.settings["settings"]["analysis"]["analyzer"]["edgengram_analyzer"]["tokenizer"], "standard")
        self.assertEqual(backend.settings["settings"]["analysis"]["analyzer"]["edgengram_analyzer"]["type"], "custom")  # Check if a default setting still exists
Beispiel #5
0
    def setUp(self):
        # Create ES mapping
        self.es_mapping = ElasticsearchSearchBackend.mapping_class(models.SearchTestChild)

        # Create ES document
        self.obj = models.SearchTestChild(title="Hello", subtitle="World", page_id=1)
        self.obj.save()
        self.obj.tags.add("a tag")
Beispiel #6
0
    def setUp(self):
        # Create ES mapping
        self.es_mapping = ElasticsearchSearchBackend.mapping_class(models.SearchTest)

        # Create ES document
        self.obj = models.SearchTest(title="Hello")
        self.obj.save()
        self.obj.tags.add("a tag")
Beispiel #7
0
    def test_hosts(self):
        # This tests that HOSTS goes to es_hosts
        backend = ElasticsearchSearchBackend(params={
            'HOSTS': [
                {
                    'host': '127.0.0.1',
                    'port': 9300,
                    'use_ssl': True,
                    'verify_certs': True,
                }
            ]
        })

        self.assertEqual(len(backend.hosts), 1)
        self.assertEqual(backend.hosts[0]['host'], '127.0.0.1')
        self.assertEqual(backend.hosts[0]['port'], 9300)
        self.assertEqual(backend.hosts[0]['use_ssl'], True)
Beispiel #8
0
    def setUp(self):
        # Create ES mapping
        self.es_mapping = ElasticsearchSearchBackend.mapping_class(models.Novel)

        self.obj = models.Novel.objects.get(id=4)