def test_attribute_not_in_fixtures(self, days_open, weighed, thr, visits): days_open.return_value = etree.fromstring(self.get_xml('bad_days_open_fixture')) weighed.return_value = etree.fromstring(self.get_xml('weighed_fixture')) thr.return_value = etree.fromstring(self.get_xml('thr_fixture')) visits.return_value = etree.fromstring(self.get_xml('visit_fixture')) with self.assertRaises(IndicatorError) as e: run_indicator_for_user(self.aww, AWWAggregatePerformanceIndicator, language_code='en') self.assertIn('Attribute awc_opened_count not found in restore for AWC AWC1', six.text_type(e.exception))
def test_form_sent_thirty_days_ago(self, last_sub_time): last_sub_time.return_value = {self.aww.get_id: self.today - timedelta(days=30)} messages = run_indicator_for_user(self.ls, LSSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) message = messages[0] self.assertTrue('one week' in message) self.assertTrue('AWC1' in message)
def test_form_sent_thirty_seven_days_ago(self, last_subs): last_subs.return_value = { self.aww.get_id: [self._make_form(self.aww.get_id, self.today - timedelta(days=37))] } messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('AWC1' in messages[0])
def test_no_app_status_fact(self): messages = run_indicator_for_user( self.user_sans_app_status, AWWSubmissionPerformanceIndicator, language_code='en', ) self.assertEqual(len(messages), 1) self.assertIn('one month', messages[0])
def test_form_sent_thirty_one_days_ago(self, last_sub_time): # last submissions only looks 30 days into past last_sub_time.return_value = {} messages = run_indicator_for_user(self.ls, LSSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) message = messages[0] self.assertTrue('one month' in message) self.assertTrue('AWC1' in message)
def test_report_parsing(self, days_open, weighed, thr, visits): days_open.return_value = etree.fromstring(self.get_xml('days_open_fixture')) weighed.return_value = etree.fromstring(self.get_xml('weighed_fixture')) thr.return_value = etree.fromstring(self.get_xml('thr_fixture')) visits.return_value = etree.fromstring(self.get_xml('visit_fixture')) [message] = run_indicator_for_user(self.aww, AWWAggregatePerformanceIndicator, language_code='en') self.assertIn('Number of visits / Number of desired visits: 6 / 65', message) self.assertIn('Number of visits on time / Number of visits: 2 / 6', message) self.assertIn('THR Distribution: 1 / 2', message) self.assertIn('Number of children weighed: 1 / 2', message) self.assertIn('Days AWC open / Goal: 3 / 25', message)
def test_user_not_in_fixtures(self, days_open, weighed, thr, visits): aww3 = self._make_user('aww3', self.locs['AWC3']) self.addCleanup(aww3.delete) days_open.return_value = etree.fromstring(self.get_xml('days_open_fixture')) weighed.return_value = etree.fromstring(self.get_xml('weighed_fixture')) thr.return_value = etree.fromstring(self.get_xml('thr_fixture')) visits.return_value = etree.fromstring(self.get_xml('visit_fixture')) [message] = run_indicator_for_user(aww3, AWWAggregatePerformanceIndicator, language_code='en') self.assertIn('Number of visits / Number of desired visits: 0 / 65', message) self.assertIn('Number of visits on time / Number of visits: 0 / 0', message) self.assertIn('THR Distribution: 0 / 0', message) self.assertIn('Number of children weighed: 0 / 0', message) self.assertIn('Days AWC open / Goal: 0 / 25', message)
def test_multiple_awc_eight_days_ago(self, last_sub_time): aww_2 = self._make_user('aww_2', self.locs['AWC2']) self.addCleanup(aww_2.delete) last_sub_time.return_value = { self.aww.get_id: self.today - timedelta(days=8), aww_2.get_id: self.today - timedelta(days=8) } messages = run_indicator_for_user(self.ls, LSSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) message = messages[0] self.assertTrue('one week' in message) self.assertTrue('AWC1' in message) self.assertTrue('AWC2' in message)
def test_multiple_locations(self, last_subs): aww_2 = self._make_user('aww_2', self.locs['AWC2']) self.addCleanup(UserESFake.remove_doc, aww_2.get_id) self.addCleanup(aww_2.delete) last_subs.return_value = { self.aww.get_id: [self._make_form(self.aww.get_id, self.today - timedelta(days=37))], aww_2.get_id: [self._make_form(aww_2.get_id, self.today - timedelta(days=37))] } messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) message = messages[0] self.assertTrue('AWC1' in message) self.assertTrue('AWC2' in message)
def test_multiple_locations_one_is_old(self, last_subs): aww_2 = self._make_user('aww_2', self.locs['AWC2']) self.addCleanup(UserESFake.remove_doc, aww_2.get_id) self.addCleanup(aww_2.delete) last_subs.return_value = { self.aww.get_id: [ self._make_form(self.aww.get_id, self.today - timedelta(days=15)) ], aww_2.get_id: [self._make_form(aww_2.get_id, self.today - timedelta(days=37))] } messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) message = messages[0] self.assertFalse('AWC1' in message) self.assertTrue('AWC2' in message)
def test_user_not_in_fixtures(self, days_open, weighed, thr, visits): aww3 = self._make_user('aww3', self.locs['AWC3']) self.addCleanup(aww3.delete) days_open.return_value = etree.fromstring( self.get_xml('days_open_fixture')) weighed.return_value = etree.fromstring( self.get_xml('weighed_fixture')) thr.return_value = etree.fromstring(self.get_xml('thr_fixture')) visits.return_value = etree.fromstring(self.get_xml('visit_fixture')) [message] = run_indicator_for_user(aww3, AWWAggregatePerformanceIndicator, language_code='en') self.assertIn('Number of visits / Number of desired visits: 0 / 65', message) self.assertIn('Number of visits on time / Number of visits: 0 / 0', message) self.assertIn('THR Distribution: 0 / 0', message) self.assertIn('Number of children weighed: 0 / 0', message) self.assertIn('Days AWC open / Goal: 0 / 25', message)
def test_form_sent_today(self, last_sub_time): last_sub_time.return_value = {self.aww.get_id: self.today} messages = run_indicator_for_user(self.ls, LSSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_form_sent_thirty_one_days_ago(self, aww_user_ids): # last submissions only looks 30 days into past aww_user_ids.return_value = {} messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('one month' in messages[0])
def test_form_sent_thirty_six_days_ago(self, last_subs): last_subs.return_value = { self.aww.get_id: [self._make_form(self.aww.get_id, self.today - timedelta(days=36))] } messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_survey_date_today(self, last_subs): last_subs.return_value = { self.aww.get_id: [self._make_form(self.aww.get_id, self.today)] } messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_no_form_submitted(self, last_subs): last_subs.return_value = {} messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('AWC1' in messages[0])
def test_form_sent_thirty_seven_days_ago(self): self._save_form(self.aww1.get_id, self.today - timedelta(days=37)) self._save_form(self.aww2.get_id, self.today - timedelta(days=36)) messages = run_indicator_for_user(self.ls, LSVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('AWC1' in messages[0])
def test_form_sent_thirty_six_days_ago(self): self._save_form(self.aww.get_id, self.today - timedelta(days=36)) messages = run_indicator_for_user(self.aww, AWWVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_form_sent_thirty_days_ago(self, aww_user_ids): aww_user_ids.return_value = {self.user.get_id: self.today - timedelta(days=30)} messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('one week' in messages[0])
def test_form_sent_just_under_seven_days_ago(self): self.app_fact.last_form_submission_date = self.now - timedelta(days=6, hours=23) self.app_fact.save() messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_form_sent_thirty_six_days_ago(self, last_subs): last_subs.return_value = { self.aww.get_id: [self._make_form(self.aww.get_id, self.today - timedelta(days=36))] } messages = run_indicator_for_user(self.aww, AWWVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_no_form_submitted(self, last_subs): last_subs.return_value = {} messages = run_indicator_for_user(self.aww, AWWVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('VHSND could not happen at your centre' in messages[0])
def test_form_sent_seven_days_ago(self, last_sub_time): last_sub_time.return_value = {self.aww.get_id: self.today - timedelta(days=7)} messages = run_indicator_for_user(self.ls, LSSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_no_form_submitted(self): messages = run_indicator_for_user(self.aww, AWWVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertTrue('VHSND could not happen at your centre' in messages[0])
def test_no_last_form_submission(self): self.app_fact.last_form_submission_date = None self.app_fact.save() messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertIn('one month', messages[0])
def test_missing_translation_file(self): with self.assertRaises(TemplateDoesNotExist): run_indicator_for_user(self.ls, LSAggregatePerformanceIndicatorV2, language_code=None)
def test_form_sent_today(self): self.app_fact.last_form_submission_date = self.now self.app_fact.save() messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_survey_date_today(self): self._save_form(self.aww.get_id, self.today) messages = run_indicator_for_user(self.aww, AWWVHNDSurveyIndicator, language_code='en') self.assertEqual(len(messages), 0)
def test_form_sent_thirty_one_days_ago(self): self.app_fact.last_form_submission_date = self.now - timedelta(days=31) self.app_fact.save() messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 1) self.assertIn('one month', messages[0])
def test_form_sent_seven_days_ago(self, aww_user_ids): aww_user_ids.return_value = {self.user.get_id: self.today - timedelta(days=7)} messages = run_indicator_for_user(self.user, AWWSubmissionPerformanceIndicator, language_code='en') self.assertEqual(len(messages), 0)