From 1720a732cb08a53f6b32cda0819fc8385ea381a5 Mon Sep 17 00:00:00 2001 From: Bob Haddleton Date: Tue, 17 Oct 2017 08:20:25 -0500 Subject: [PATCH] Fix deregister service and add tests --- consul/base.py | 2 +- tests/test_base.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/consul/base.py b/consul/base.py index 09203b6d..143a4953 100755 --- a/consul/base.py +++ b/consul/base.py @@ -886,7 +886,7 @@ def deregister(self, service_id): take care of deregistering the service with the Catalog. If there is an associated check, that is also deregistered. """ - return self.agent.http.get( + return self.agent.http.put( CB.bool(), '/v1/agent/service/deregister/%s' % service_id) def maintenance(self, service_id, enable, reason=None): diff --git a/tests/test_base.py b/tests/test_base.py index 7ea79fbd..6a090724 100755 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -175,3 +175,39 @@ def test_docker_check(self, container_id, shell, script, interval, def test_ttl_check(self): ch = consul.base.Check.ttl('1m') assert ch == {'ttl': '1m'} + + +@pytest.fixture() +def consul_client(): + return Consul() + + +class TestAgentService(object): + def test_list(self, consul_client): + ch = consul_client.agent.services() + assert ch == Request(method='get', path='/v1/agent/services', + params=None, data=None) + + def test_register(self, consul_client): + ch = consul_client.agent.service.register('test_service') + assert ch == Request(method='put', params={}, + path='/v1/agent/service/register', + data='{"name": "test_service"}') + + def test_deregister(self, consul_client): + ch = consul_client.agent.service.deregister('testservice') + assert ch == Request(method='put', + path='/v1/agent/service/deregister/testservice', + params=None, data='') + + def test_mm_enable(self, consul_client): + ch = consul_client.agent.service.maintenance('testservice', True) + assert ch == Request(method='put', + path='/v1/agent/service/maintenance/testservice', + params={"enable": True}, data='') + + def test_mm_disable(self, consul_client): + ch = consul_client.agent.service.maintenance('testservice', False) + assert ch == Request(method='put', + path='/v1/agent/service/maintenance/testservice', + params={"enable": False}, data='')