Merge branch 'development'
This commit is contained in:
commit
ed1386d571
@ -1,6 +1,15 @@
|
|||||||
from datetime import date, timedelta
|
from datetime import date, timedelta
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
from calendar import monthrange
|
||||||
|
|
||||||
|
def last_day_of_month(year, month):
|
||||||
|
"""last valid day of a month"""
|
||||||
|
return monthrange(year, month)[1]
|
||||||
|
|
||||||
|
def latest_valid_date(year, month, day):
|
||||||
|
"""latest date not later than the day specified"""
|
||||||
|
valid_day = min(day, last_day_of_month(year, month))
|
||||||
|
return date(year, month, valid_day)
|
||||||
|
|
||||||
class UserMetricsService:
|
class UserMetricsService:
|
||||||
""" Class to manage all the user info """
|
""" Class to manage all the user info """
|
||||||
@ -143,9 +152,9 @@ class UserMetricsService:
|
|||||||
today = date.today()
|
today = date.today()
|
||||||
if end_period_day > today.day:
|
if end_period_day > today.day:
|
||||||
temp_date = today + relativedelta(months=-1)
|
temp_date = today + relativedelta(months=-1)
|
||||||
date_from = date(temp_date.year, temp_date.month, end_period_day)
|
date_from = latest_valid_date(temp_date.year, temp_date.month, end_period_day)
|
||||||
else:
|
else:
|
||||||
date_from = date(today.year, today.month, end_period_day)
|
date_from = latest_valid_date(today.year, today.month, end_period_day)
|
||||||
|
|
||||||
return date_from, today
|
return date_from, today
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ from setuptools import setup, find_packages
|
|||||||
setup(
|
setup(
|
||||||
name='cartodb_services',
|
name='cartodb_services',
|
||||||
|
|
||||||
version='0.12.3',
|
version='0.12.4',
|
||||||
|
|
||||||
description='CartoDB Services API Python Library',
|
description='CartoDB Services API Python Library',
|
||||||
|
|
||||||
|
@ -23,6 +23,10 @@ class TestUserService(TestCase):
|
|||||||
amount=400)
|
amount=400)
|
||||||
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 400
|
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 400
|
||||||
|
|
||||||
|
def test_user_quota_for_a_month_shorter_than_end_day(self):
|
||||||
|
us = self.__build_user_service('test_user', end_date=date(2016,1,31))
|
||||||
|
assert us.used_quota(self.NOKIA_GEOCODER, date(2016,2,10)) == 0
|
||||||
|
|
||||||
def test_org_used_quota_for_a_day(self):
|
def test_org_used_quota_for_a_day(self):
|
||||||
us = self.__build_user_service('test_user', orgname='test_org')
|
us = self.__build_user_service('test_user', orgname='test_org')
|
||||||
increment_service_uses(self.redis_conn, 'test_user',
|
increment_service_uses(self.redis_conn, 'test_user',
|
||||||
@ -30,6 +34,10 @@ class TestUserService(TestCase):
|
|||||||
amount=400)
|
amount=400)
|
||||||
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 400
|
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 400
|
||||||
|
|
||||||
|
def test_org_quota_quota_for_a_month_shorter_than_end_day(self):
|
||||||
|
us = self.__build_user_service('test_user', orgname='test_org', end_date=date(2016,1,31))
|
||||||
|
assert us.used_quota(self.NOKIA_GEOCODER, date(2016,2,10)) == 0
|
||||||
|
|
||||||
def test_user_not_amount_in_used_quota_for_month_should_be_0(self):
|
def test_user_not_amount_in_used_quota_for_month_should_be_0(self):
|
||||||
us = self.__build_user_service('test_user')
|
us = self.__build_user_service('test_user')
|
||||||
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 0
|
assert us.used_quota(self.NOKIA_GEOCODER, date.today()) == 0
|
||||||
|
Loading…
Reference in New Issue
Block a user