Example #1
0
    def test_old_report_redirect(self):
        """Test old report url redirects to list of reports for that month."""
        user = UserFactory.create(groups=['Rep'])
        report_date = datetime.date(2011, 01, 05)
        NGReportFactory.create_batch(3, user=user, report_date=report_date)

        display_name = user.userprofile.display_name
        url = reverse('reports_ng_view_report',
                      kwargs={
                          'display_name': display_name,
                          'month': 'January',
                          'year': 2011
                      })
        response = Client().get(url, follow=True)
        expected_redirect_url = '/reports/rep/{}/'.format(display_name)

        self.assertEqual(response.status_code, 200)
        redirect_full_url, redirect_code = response.redirect_chain[0]
        self.assertEqual(redirect_code, 302)

        redirect_url, redirect_params = redirect_full_url.split('?')

        self.assertEqual(response.status_code, 200)
        self.assertTrue(redirect_url.endswith(expected_redirect_url))
        self.assertEqual(set(redirect_params.split('&')),
                         set(['year=2011', 'month=January']))
        eq_(response.context['number_of_reports'], 3)
Example #2
0
    def test_old_report_redirect(self):
        """Test old report url redirects to list of reports for that month."""
        user = UserFactory.create(groups=['Rep'])
        report_date = datetime.date(2011, 01, 05)
        NGReportFactory.create_batch(3, user=user, report_date=report_date)

        display_name = user.userprofile.display_name
        url = reverse('reports_ng_view_report',
                      kwargs={'display_name': display_name,
                              'month': 'January',
                              'year': 2011})
        response = Client().get(url, follow=True)
        expected_redirect_url = '/reports/rep/{}/'.format(display_name)

        self.assertEqual(response.status_code, 200)
        redirect_full_url, redirect_code = response.redirect_chain[0]
        self.assertEqual(redirect_code, 302)

        redirect_url, redirect_params = redirect_full_url.split('?')

        self.assertEqual(response.status_code, 200)
        self.assertTrue(redirect_url.endswith(expected_redirect_url))
        self.assertEqual(set(redirect_params.split('&')),
                         set(['year=2011', 'month=January']))
        eq_(response.context['number_of_reports'], 3)
Example #3
0
    def test_base(self):
        mentor_1 = UserFactory.create(groups=['Mentor'])
        NGReportFactory.create_batch(2, mentor=mentor_1)
        NGReport.objects.update(created_on=date(2014, 1, 1))
        UserFactory.create(groups=['Mentor'])

        with patch('remo.reports.tasks.datetime') as datetime_mock:
            datetime_mock.utcnow().date.return_value = datetime(2014, 1, 1)
            with patch('remo.reports.tasks.send_mail') as send_mail_mock:
                with patch('remo.reports.tasks.DIGEST_SUBJECT', '{date}'):
                    send_report_digest()

        send_mail_mock.assert_called_with(
            'Wed 01 Jan 2014', mockany, settings.FROM_EMAIL, [mentor_1.email])
Example #4
0
    def test_old_report_redirect(self):
        """Test old report url redirects to list of reports for that month."""
        user = UserFactory.create(groups=['Rep'])
        report_date = datetime.date(2011, 01, 05)
        NGReportFactory.create_batch(3, user=user, report_date=report_date)

        display_name = user.userprofile.display_name
        url = reverse('reports_ng_view_report',
                      kwargs={'display_name': display_name,
                              'month': 'January',
                              'year': 2011})
        response = self.get(url, follow=True)
        redirect_url = '/reports/rep/%s/?year=2011&month=January'
        self.assertRedirects(response, redirect_url % display_name)
        eq_(response.context['number_of_reports'], 3)
Example #5
0
    def test_base(self):
        mentor_1 = UserFactory.create(groups=['Mentor'])
        NGReportFactory.create_batch(2, mentor=mentor_1)
        NGReport.objects.update(created_on=date(2014, 1, 1))
        UserFactory.create(groups=['Mentor'])

        with patch('remo.reports.tasks.datetime') as datetime_mock:
            datetime_mock.utcnow().date.return_value = datetime(2014, 1, 1)
            with patch('remo.reports.tasks.send_mail') as send_mail_mock:
                with patch('remo.reports.tasks.DIGEST_SUBJECT', '{date}'):
                    send_report_digest()

        send_mail_mock.assert_called_with('Wed 01 Jan 2014', mockany,
                                          settings.FROM_EMAIL,
                                          [mentor_1.email])
Example #6
0
    def test_old_report_redirect(self):
        """Test old report url redirects to list of reports for that month."""
        user = UserFactory.create(groups=['Rep'])
        report_date = datetime.date(2011, 01, 05)
        NGReportFactory.create_batch(3, user=user, report_date=report_date)

        display_name = user.userprofile.display_name
        url = reverse('reports_ng_view_report',
                      kwargs={
                          'display_name': display_name,
                          'month': 'January',
                          'year': 2011
                      })
        response = self.get(url, follow=True)
        redirect_url = '/reports/rep/%s/?year=2011&month=January'
        self.assertRedirects(response, redirect_url % display_name)
        eq_(response.context['number_of_reports'], 3)
Example #7
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)
Example #8
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)
Example #9
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)
Example #10
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
        report_date = date(2014, 12, 5)
        NGReportFactory.create_batch(2, report_date=report_date)

        # This quarter
        report_date = date(2015, 1, 5)
        NGReportFactory.create(report_date=report_date)

        # Next quarter
        report_date = date(2015, 5, 3)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = dict()

        response = ActivitiesKPIView().get(request)
        eq_(response.data['quarter_total'], 1)
        eq_(response.data['quarter_growth_percentage'], - (3 - 2) * 100 / 2.0)
Example #11
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
        report_date = date(2015, 2, 25)
        NGReportFactory.create(report_date=report_date)

        # Previous week
        report_date = date(2015, 2, 18)
        NGReportFactory.create_batch(2, report_date=report_date)

        # Next week
        report_date = date(2015, 3, 4)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = dict()

        response = ActivitiesKPIView().get(request)
        eq_(response.data['week_total'], 1)
        eq_(response.data['week_growth_percentage'], (1 - 2) * 100 / 2.0)
Example #12
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
        report_date = date(2014, 12, 5)
        NGReportFactory.create_batch(2, report_date=report_date)

        # This quarter
        report_date = date(2015, 1, 5)
        NGReportFactory.create(report_date=report_date)

        # Next quarter
        report_date = date(2015, 5, 3)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = dict()

        response = ActivitiesKPIView().get(request)
        eq_(response.data['quarter_total'], 1)
        eq_(response.data['quarter_growth_percentage'], -(3 - 2) * 100 / 2.0)
Example #13
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
        report_date = date(2015, 2, 25)
        NGReportFactory.create(report_date=report_date)

        # Previous week
        report_date = date(2015, 2, 18)
        NGReportFactory.create_batch(2, report_date=report_date)

        # Next week
        report_date = date(2015, 3, 4)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = dict()

        response = ActivitiesKPIView().get(request)
        eq_(response.data['week_total'], 1)
        eq_(response.data['week_growth_percentage'], (1 - 2) * 100 / 2.0)
Example #14
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
        report_date = date(2015, 2, 26)
        NGReportFactory.create_batch(3, report_date=report_date)

        # Week-1
        report_date = date(2015, 2, 18)
        NGReportFactory.create_batch(2, report_date=report_date)

        # Week-2
        report_date = date(2015, 2, 11)
        NGReportFactory.create_batch(4, report_date=report_date)

        # Week-3
        report_date = date(2015, 2, 4)
        NGReportFactory.create(report_date=report_date)

        # Next week
        report_date = date(2015, 3, 4)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = {'weeks': 4}

        response = ActivitiesKPIView().get(request)
        eq_(response.data['week_total'], 3)
        eq_(response.data['week_growth_percentage'], (3 - 2) * 100 / 2.0)
        total_per_week = [{
            'week': 1,
            'activities': 1
        }, {
            'week': 2,
            'activities': 4
        }, {
            'week': 3,
            'activities': 2
        }, {
            'week': 4,
            'activities': 3
        }]

        for entry in response.data['total_per_week']:
            ok_(entry in total_per_week)

        eq_(len(response.data['total_per_week']), 4)
Example #15
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
        report_date = date(2015, 2, 26)
        NGReportFactory.create_batch(3, report_date=report_date)

        # Week-1
        report_date = date(2015, 2, 18)
        NGReportFactory.create_batch(2, report_date=report_date)

        # Week-2
        report_date = date(2015, 2, 11)
        NGReportFactory.create_batch(4, report_date=report_date)

        # Week-3
        report_date = date(2015, 2, 4)
        NGReportFactory.create(report_date=report_date)

        # Next week
        report_date = date(2015, 3, 4)
        NGReportFactory.create(report_date=report_date)

        request = self.factory.get(self.url)
        request.query_params = {'weeks': 4}

        response = ActivitiesKPIView().get(request)
        eq_(response.data['week_total'], 3)
        eq_(response.data['week_growth_percentage'], (3 - 2) * 100 / 2.0)
        total_per_week = [
            {'week': 1, 'activities': 1},
            {'week': 2, 'activities': 4},
            {'week': 3, 'activities': 2},
            {'week': 4, 'activities': 3}
        ]

        for entry in response.data['total_per_week']:
            ok_(entry in total_per_week)

        eq_(len(response.data['total_per_week']), 4)