From 3d93536905213b5efa716e08679e0cb2cb170206 Mon Sep 17 00:00:00 2001 From: Aru Sahni Date: Thu, 30 Jun 2016 14:22:57 -0400 Subject: [PATCH] Fix encoding issues w/raw responses. --- preflyt/checkers/elasticsearch.py | 2 +- tests/test_elasticsearch.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/preflyt/checkers/elasticsearch.py b/preflyt/checkers/elasticsearch.py index 449ddb4..8fe1a8b 100644 --- a/preflyt/checkers/elasticsearch.py +++ b/preflyt/checkers/elasticsearch.py @@ -29,7 +29,7 @@ def check(self): try: with request.urlopen(self._url) as response: body = response.read() - response = json.loads(body) + response = json.loads(body.decode('utf-8')) if response["status"] in self._colors: return True, "Cluster status is '{}'".format(response["status"]) return False, "Cluster status is '{}'".format(response["status"]) diff --git a/tests/test_elasticsearch.py b/tests/test_elasticsearch.py index a5a687c..f076487 100644 --- a/tests/test_elasticsearch.py +++ b/tests/test_elasticsearch.py @@ -31,6 +31,9 @@ }} """ +def get_response(color): + return RESPONSE_TEMPLATE.format(color=color).encode('utf-8') + def test_init(): esc = ElasticsearchChecker(EXAMPLE_URL) eq_(ElasticsearchChecker.checker_name, "es") @@ -52,7 +55,7 @@ def test_init_prefixless(): def test_check_healthy(urlopen): esc = ElasticsearchChecker(EXAMPLE_URL) response_mock = MagicMock() - response_mock.read.return_value = RESPONSE_TEMPLATE.format(color="green") + response_mock.read.return_value = get_response("green") response_mock.__enter__.return_value = response_mock urlopen.return_value = response_mock result, message = esc.check() @@ -64,7 +67,7 @@ def test_check_healthy(urlopen): def test_check_unhealthy(urlopen): esc = ElasticsearchChecker(EXAMPLE_URL) response_mock = MagicMock() - response_mock.read.return_value = RESPONSE_TEMPLATE.format(color="yellow") + response_mock.read.return_value = get_response("yellow") response_mock.__enter__.return_value = response_mock urlopen.return_value = response_mock result, message = esc.check() @@ -76,7 +79,7 @@ def test_check_unhealthy(urlopen): def test_check_additional_color(urlopen): esc = ElasticsearchChecker(EXAMPLE_URL, colors=["yellow"]) response_mock = MagicMock() - response_mock.read.return_value = RESPONSE_TEMPLATE.format(color="yellow") + response_mock.read.return_value = get_response("yellow") response_mock.__enter__.return_value = response_mock urlopen.return_value = response_mock result, message = esc.check() @@ -88,7 +91,7 @@ def test_check_additional_color(urlopen): def test_check_additional_color_base(urlopen): esc = ElasticsearchChecker(EXAMPLE_URL, colors=["yellow"]) response_mock = MagicMock() - response_mock.read.return_value = RESPONSE_TEMPLATE.format(color="green") + response_mock.read.return_value = get_response("green") response_mock.__enter__.return_value = response_mock urlopen.return_value = response_mock result, message = esc.check()