Merge pull request #4 from CyberDem0n/etcd-cluster-support

real_ttl method will return -1 when expiration is not defined
This commit is contained in:
Alexander Kukushkin
2015-06-23 17:16:26 +02:00
3 changed files with 8 additions and 2 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ class Member(namedtuple('Member', 'name,conn_url,api_url,expiration,ttl')):
return Member(node['key'].split('/')[-1], conn_url, api_url, expiration, ttl)
def real_ttl(self):
return calculate_ttl(self.expiration)
return calculate_ttl(self.expiration) or -1
class Cluster(namedtuple('Cluster', 'initialize,leader,last_leader_operation,members')):
+6
View File
@@ -28,6 +28,12 @@ def parse_datetime(time_str):
def calculate_ttl(expiration):
"""
>>> calculate_ttl(None)
>>> calculate_ttl('2015-06-10 12:56:30.552539016Z')
"""
if not expiration:
return None
expiration = parse_datetime(expiration)
if not expiration:
return None
+1 -1
View File
@@ -104,7 +104,7 @@ class TestMember(unittest.TestCase):
now = datetime.datetime.utcnow()
member = Member('a', 'b', 'c', (now + datetime.timedelta(seconds=2)).strftime('%Y-%m-%dT%H:%M:%S.%fZ'), None)
self.assertLess(member.real_ttl(), 2)
self.assertIsNone(Member('a', 'b', 'c', '', None).real_ttl())
self.assertEquals(Member('a', 'b', 'c', '', None).real_ttl(), -1)
class TestClient(unittest.TestCase):