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_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_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_similar_event_category(self): """Test similar events functionality""" kwargs = { 'categories': self.event.categories.all()[:1], 'country': 'CountryName', 'start': now() + timedelta(days=10), 'end': now() + timedelta(days=13)} EventFactory.create_batch(5, **kwargs) result = self.event.get_similar_events() eq_(result.count(), 5)
def test_multi_event_ical_export_past(self): """Test multiple past event ical export.""" EventFactory.create_batch(2) # Export past events to iCal period = 'past' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
def test_similar_event_category(self): """Test similar events functionality""" kwargs = { 'categories': self.event.categories.all()[:1], 'country': 'CountryName', 'start': now() + timedelta(days=10), 'end': now() + timedelta(days=13)} EventFactory.create_batch(3, **kwargs) result = self.event.get_similar_events() eq_(result.count(), 3)
def test_multi_event_ical_export_past(self): """Test multiple past event ical export.""" EventFactory.create_batch(2) # Export past events to iCal period = 'past' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
def test_multi_event_ical_export_future(self): """Test multiple past event ical export.""" start = now() + datetime.timedelta(days=1) end = now() + datetime.timedelta(days=2) EventFactory.create_batch(2, start=start, end=end) # Export future events to iCal period = 'future' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
def test_similar_event_country(self): """Test similar events functionality""" categories = self.event.categories.all() kwargs = { 'categories': (FunctionalArea.objects .exclude(pk__in=categories)[:4]), 'country': self.event.country, 'start': now() + timedelta(days=10), 'end': now() + timedelta(days=13)} EventFactory.create_batch(5, **kwargs) result = self.event.get_similar_events() eq_(result.count(), 5)
def test_multi_event_ical_export_future(self): """Test multiple past event ical export.""" start = now() + datetime.timedelta(days=1) end = now() + datetime.timedelta(days=2) EventFactory.create_batch(2, start=start, end=end) # Export future events to iCal period = 'future' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
def test_similar_event_no_match(self): """Test similar events functionality""" categories = self.event.categories.all() kwargs = { 'categories': (FunctionalArea.active_objects .exclude(pk__in=categories)[:4]), 'country': 'CountryName', 'start': now() + timedelta(days=10), 'end': now() + timedelta(days=13)} EventFactory.create_batch(3, **kwargs) result = self.event.get_similar_events() ok_(not result.exists())
def test_similar_event_no_match(self): """Test similar events functionality""" categories = self.event.categories.all() kwargs = { 'categories': (FunctionalArea.active_objects .exclude(pk__in=categories)[:4]), 'country': 'CountryName', 'start': now() + timedelta(days=10), 'end': now() + timedelta(days=13)} EventFactory.create_batch(5, **kwargs) result = self.event.get_similar_events() eq_(result.exists(), False)
def test_overview(self): UserFactory.create_batch(10, groups=['Rep']) NGReportFactory.create_batch(12) # Past events EventFactory.create_batch(5) # Current and future events EventFactory.create_batch(10, start=now() + timedelta(days=3), end=now() + timedelta(days=4)) response = self.get(reverse('stats_dashboard')) eq_(response.status_code, 200) self.assertTemplateUsed(response, 'stats_dashboard.html') eq_(response.context['reps'], 10) eq_(response.context['past_events'], 5) eq_(response.context['future_events'], 10) eq_(response.context['activities'], 27)
def test_overview(self): UserFactory.create_batch(10, groups=['Rep']) NGReportFactory.create_batch(12) # Past events EventFactory.create_batch(5) # Current and future events EventFactory.create_batch(10, start=now() + timedelta(days=3), end=now() + timedelta(days=4)) response = self.get(reverse('stats_dashboard')) eq_(response.status_code, 200) self.assertTemplateUsed(response, 'stats_dashboard.html') eq_(response.context['reps'], 10) eq_(response.context['past_events'], 5) eq_(response.context['future_events'], 10) eq_(response.context['activities'], 27)
def test_overview(self): UserFactory.create_batch(10, groups=['Rep']) NGReportFactory.create_batch(12) # Past events EventFactory.create_batch(5) # Current and future events EventFactory.create_batch(10, start=now() + timedelta(days=3), end=now() + timedelta(days=4)) response = Client().get(reverse('kpi')) eq_(response.status_code, 200) self.assertJinja2TemplateUsed(response, 'kpi.jinja') eq_(response.context['reps_count'], 10) eq_(response.context['past_events'], 5) eq_(response.context['future_events'], 10) eq_(response.context['activities'], 27)
def test_multi_event_ical_export_custom(self): """Test multiple event ical export with custom date.""" event_start = now() + datetime.timedelta(days=1) event_end = now() + datetime.timedelta(days=2) EventFactory.create_batch(2, start=event_start, end=event_end) period = 'custom' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) start = (event_start - datetime.timedelta(days=1)).strftime('%Y-%m-%d') end = (event_end + datetime.timedelta(days=1)).strftime('%Y-%m-%d') query = 'custom/start/%s/end/%s' % (start, end) response = self.client.get(reverse('multiple_event_ical', kwargs={'period': query}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
def test_multi_event_ical_export_custom(self): """Test multiple event ical export with custom date.""" event_start = now() + datetime.timedelta(days=1) event_end = now() + datetime.timedelta(days=2) EventFactory.create_batch(2, start=event_start, end=event_end) period = 'custom' response = self.client.get(reverse('multiple_event_ical', kwargs={'period': period}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) start = (event_start - datetime.timedelta(days=1)).strftime('%Y-%m-%d') end = (event_end + datetime.timedelta(days=1)).strftime('%Y-%m-%d') query = 'custom/start/%s/end/%s' % (start, end) response = self.client.get(reverse('multiple_event_ical', kwargs={'period': query}), follow=True) self.failUnless(response['Content-Type'].startswith('text/calendar')) eq_(len(response.context['events']), 2)
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)
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)