-
Notifications
You must be signed in to change notification settings - Fork 3
/
test_es.py
63 lines (53 loc) · 2.38 KB
/
test_es.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Copyright 2016: Mirantis Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import mock
from health.mapping import es
from tests.unit import test # noqa
class InitElasticTestCase(test.TestCase):
def setUp(self):
super(InitElasticTestCase, self).setUp()
es.existing_indices = set()
@mock.patch("requests.api.request")
def test_init_elastic_index_exists(self, mock_request):
mock_request.return_value.status_code = 200
mock_request.return_value.ok = True
es.ensure_index_exists("fake-es", "regionOne")
self.assertEqual(1, mock_request.call_count)
calls = [mock.call("get", "fake-es/ms_health_regionOne",
allow_redirects=True, params=None)]
mock_request.assert_has_calls(calls)
@mock.patch("requests.api.request")
def test_init_elastic_create_index(self, mock_request):
mock_request.side_effect = [
mock.Mock(status_code=404, ok=False),
mock.Mock(status_code=200, ok=True)
]
es.ensure_index_exists("fake-es", "regionOne")
calls = [mock.call("get", "fake-es/ms_health_regionOne",
allow_redirects=True, params=None),
mock.call("put", "fake-es/ms_health_regionOne",
data=mock.ANY)]
self.assertEqual(2, mock_request.call_count)
mock_request.assert_has_calls(calls)
@mock.patch("health.mapping.es.sys")
@mock.patch("requests.api.request")
def test_init_elastic_exit_if_failed(self, mock_request, mock_sys):
mock_request.side_effect = [
mock.Mock(status_code=404, ok=False),
mock.Mock(status_code=400, ok=False)
]
es.ensure_index_exists("fake-es", "regionOne")
self.assertEqual(2, mock_request.call_count)
mock_sys.exit.assert_called_once_with(1)