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)
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)
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])
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)
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])
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)
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_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)
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)
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)
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)
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)
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)