Esempio n. 1
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)
Esempio n. 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)
Esempio n. 3
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)
Esempio n. 4
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)
Esempio n. 5
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)
Esempio n. 6
0
    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)
Esempio n. 7
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(3, **kwargs)
        result = self.event.get_similar_events()
        eq_(result.count(), 3)
Esempio n. 8
0
    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)
Esempio n. 9
0
    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)
Esempio n. 10
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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())
Esempio n. 13
0
    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)
Esempio n. 14
0
    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)
Esempio n. 15
0
    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)
Esempio n. 16
0
    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)
Esempio n. 17
0
    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)
Esempio n. 18
0
    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)
Esempio n. 19
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)
Esempio n. 20
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)