def test_quarter(self, mock_api_now, mock_utils_now): now_return_value = datetime(2015, 3, 1) mock_api_now.return_value = now_return_value mock_utils_now.return_value = now_return_value # Previous quarter start = datetime(2014, 12, 5) end = datetime(2014, 12, 6) EventFactory.create_batch(2, start=start, end=end) # This quarter start = datetime(2015, 1, 5) end = datetime(2015, 1, 6) EventFactory.create(start=start, end=end) # Next quarter start = datetime(2015, 5, 3) end = datetime(2015, 5, 5) EventFactory.create(start=start, end=end) request = self.factory.get(self.url) request.query_params = dict() response = EventsKPIView().get(request) eq_(response.data['quarter_total'], 1) eq_(response.data['quarter_growth_percentage'], -(3 - 2) * 100 / 2.0)
def test_current_week(self, mock_api_now, mock_utils_now): now_return_value = datetime(2015, 3, 1) mock_api_now.return_value = now_return_value mock_utils_now.return_value = now_return_value # Current week start = datetime(2015, 2, 25) end = datetime(2015, 2, 26) EventFactory.create(start=start, end=end) # Previous week start = datetime(2015, 2, 18) end = datetime(2015, 2, 19) EventFactory.create_batch(2, start=start, end=end) # Next week start = datetime(2015, 3, 4) end = datetime(2015, 3, 5) EventFactory.create(start=start, end=end) request = self.factory.get(self.url) request.query_params = dict() response = EventsKPIView().get(request) eq_(response.data['week_total'], 1) eq_(response.data['week_growth_percentage'], (1 - 2) * 100 / 2.0)
def test_weeks(self, mock_api_now, mock_utils_now): now_return_value = datetime(2015, 3, 1) mock_api_now.return_value = now_return_value mock_utils_now.return_value = now_return_value # Current week start = datetime(2015, 2, 25) end = datetime(2015, 2, 26) EventFactory.create_batch(3, start=start, end=end) # Week-1 start = datetime(2015, 2, 18) end = datetime(2015, 2, 19) EventFactory.create_batch(2, start=start, end=end) # Week-2 start = datetime(2015, 2, 11) end = datetime(2015, 2, 12) EventFactory.create_batch(4, start=start, end=end) # Week-3 start = datetime(2015, 2, 4) end = datetime(2015, 2, 5) EventFactory.create(start=start, end=end) # Next week start = datetime(2015, 3, 4) end = datetime(2015, 3, 5) EventFactory.create(start=start, end=end) request = self.factory.get(self.url) request.query_params = {'weeks': 4} response = EventsKPIView().get(request) eq_(response.data['week_total'], 3) eq_(response.data['week_growth_percentage'], (3 - 2) * 100 / 2.0) total_per_week = [{ 'week': 1, 'events': 1 }, { 'week': 2, 'events': 4 }, { 'week': 3, 'events': 2 }, { 'week': 4, 'events': 3 }] for entry in response.data['total_per_week']: ok_(entry in total_per_week) eq_(len(response.data['total_per_week']), 4)
from django.conf.urls import include, patterns, url from rest_framework import routers from tastypie.api import Api from remo.events.api.api_v1 import EventResource from remo.events.api.views import EventsKPIView, EventsViewSet from remo.profiles.api.api_v1 import RepResource from remo.reports.api.views import ActivitiesKPIView, ActivitiesViewSet from remo.profiles.api.views import PeopleKPIView, UserProfileViewSet # Legacy non-public API v1_api = Api(api_name='v1') v1_api.register(RepResource()) v1_api.register(EventResource()) # ReMo public API router = routers.DefaultRouter() router.register(r'users', UserProfileViewSet) router.register(r'events', EventsViewSet) router.register(r'activities', ActivitiesViewSet) urlpatterns = patterns( '', url(r'', include(v1_api.urls)), url(r'^beta/', include(router.urls), name='v1root'), url(r'^kpi/events/', EventsKPIView.as_view(), name='kpi-events'), url(r'^kpi/activities/', ActivitiesKPIView.as_view(), name='kpi-activities'), url(r'^kpi/people/', PeopleKPIView.as_view(), name='kpi-people'))
from rest_framework import routers from tastypie.api import Api from remo.events.api.api_v1 import EventResource from remo.events.api.views import EventsKPIView, EventsViewSet from remo.profiles.api.api_v1 import RepResource from remo.reports.api.views import ActivitiesKPIView, ActivitiesViewSet from remo.profiles.api.views import PeopleKPIView, UserProfileViewSet # Legacy non-public API v1_api = Api(api_name='v1') v1_api.register(RepResource()) v1_api.register(EventResource()) # ReMo public API router = routers.DefaultRouter() router.register(r'users', UserProfileViewSet) router.register(r'events', EventsViewSet) router.register(r'activities', ActivitiesViewSet) urlpatterns = patterns( '', url(r'', include(v1_api.urls)), url(r'^beta/', include(router.urls), name='v1root'), url(r'^kpi/events/', EventsKPIView.as_view(), name='kpi-events'), url(r'^kpi/activities/', ActivitiesKPIView.as_view(), name='kpi-activities'), url(r'^kpi/people/', PeopleKPIView.as_view(), name='kpi-people') )
def test_total(self): EventFactory.create() request = self.factory.get(self.url) request.query_params = dict() response = EventsKPIView().get(request) eq_(response.data['total'], 1)