From 326787ef1a3c1547febb94e6b0c1ad20e2f0a0da Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 17 Oct 2018 10:45:01 +0200 Subject: [PATCH] Add another 3 days leeway to give time for payment processing times (#17542) --- homeassistant/components/cloud/__init__.py | 4 ++-- tests/components/cloud/test_init.py | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/cloud/__init__.py b/homeassistant/components/cloud/__init__.py index 217b39aff62..54a221565b4 100644 --- a/homeassistant/components/cloud/__init__.py +++ b/homeassistant/components/cloud/__init__.py @@ -5,7 +5,7 @@ For more details about this component, please refer to the documentation at https://home-assistant.io/components/cloud/ """ import asyncio -from datetime import datetime +from datetime import datetime, timedelta import json import logging import os @@ -162,7 +162,7 @@ class Cloud: @property def subscription_expired(self): """Return a boolean if the subscription has expired.""" - return dt_util.utcnow() > self.expiration_date + return dt_util.utcnow() > self.expiration_date + timedelta(days=3) @property def expiration_date(self): diff --git a/tests/components/cloud/test_init.py b/tests/components/cloud/test_init.py index 1fdbda496a9..8695830eae9 100644 --- a/tests/components/cloud/test_init.py +++ b/tests/components/cloud/test_init.py @@ -142,14 +142,28 @@ def test_write_user_info(): @asyncio.coroutine def test_subscription_expired(hass): - """Test subscription being expired.""" + """Test subscription being expired after 3 days of expiration.""" cl = cloud.Cloud(hass, cloud.MODE_DEV, None, None) token_val = { 'custom:sub-exp': '2017-11-13' } with patch.object(cl, '_decode_claims', return_value=token_val), \ patch('homeassistant.util.dt.utcnow', - return_value=utcnow().replace(year=2018)): + return_value=utcnow().replace(year=2017, month=11, day=13)): + assert not cl.subscription_expired + + with patch.object(cl, '_decode_claims', return_value=token_val), \ + patch('homeassistant.util.dt.utcnow', + return_value=utcnow().replace( + year=2017, month=11, day=15, hour=23, minute=59, + second=59)): + assert not cl.subscription_expired + + with patch.object(cl, '_decode_claims', return_value=token_val), \ + patch('homeassistant.util.dt.utcnow', + return_value=utcnow().replace( + year=2017, month=11, day=16, hour=0, minute=0, + second=0)): assert cl.subscription_expired