Skip to content

Commit

Permalink
Fix heartbeat behaviour
Browse files Browse the repository at this point in the history
  • Loading branch information
leplatrem committed Nov 2, 2016
1 parent 27b51b1 commit d13eff1
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.rst
Expand Up @@ -7,7 +7,9 @@ This document describes changes between each past release.
0.3.0 (unreleased)
------------------

- Nothing changed yet.
**Bug fixes**

- Fix heartbeat that would always return False


0.2.0 (2016-11-02)
Expand Down
2 changes: 2 additions & 0 deletions kinto_ldap/authentication.py
Expand Up @@ -65,6 +65,8 @@ def ldap_ping(request):
try:
with cm.connection('mail=mail@test,o=com,dc=test', 'password'):
ldap = True
except INVALID_CREDENTIALS:
ldap = True
except Exception:
logger.exception("Heartbeat Failure")
ldap = False
Expand Down
17 changes: 15 additions & 2 deletions kinto_ldap/tests/test_views.py
@@ -1,9 +1,12 @@
import unittest

import mock

import kinto.core
import webtest
from kinto.core.utils import random_bytes_hex
from pyramid.config import Configurator
from ldap import INVALID_CREDENTIALS

from kinto_ldap import __version__ as ldap_version

Expand Down Expand Up @@ -81,10 +84,20 @@ class HeartbeatTest(BaseWebTest, unittest.TestCase):

def get_app_settings(self, extras=None):
settings = super(HeartbeatTest, self).get_app_settings(extras)
settings['ldap.endpoint'] = 'ldap://ldap.with.unreachable.server.com'
settings['ldap.pool_timeout'] = '1'
return settings

def test_heartbeat_returns_false(self):
resp = self.app.get('/__heartbeat__', status=503)
unreachable = 'ldap://ldap.with.unreachable.server.com'
app = self._get_test_app(settings={'ldap.endpoint': unreachable})
resp = app.get('/__heartbeat__', status=503)
heartbeat = resp.json['ldap']
self.assertFalse(heartbeat)

def test_heartbeat_returns_true(self):
self.app.app.registry.ldap_cm = mock.MagicMock()
self.app.app.registry.ldap_cm.connection \
.return_value.__enter__.side_effect = INVALID_CREDENTIALS
resp = self.app.get('/__heartbeat__')
heartbeat = resp.json['ldap']
self.assertTrue(heartbeat)

0 comments on commit d13eff1

Please sign in to comment.