def test_get_associated_data_senders(self): contact = Contact(self.manager, entity_type=["reporter"], short_code="rep1") entity_id = contact.save() project = Project(dbm=self.manager, name="TestDS", goals="Testing", devices=['web'], form_code="ds_form", fields=[]) project.data_senders = ["rep1"] project.save() result = project.get_associated_datasenders(self.manager) self.assertEquals(result[0].short_code, contact.short_code) self.assertEquals(result[0].id, entity_id)
def test_should_return_data_senders_without_submissions_for_week(self): reminder_and_deadline_for_month = { "reminders_enabled": "True", "deadline_month": "5", "deadline_type": "current", "frequency_enabled": "True", "has_deadline": "True", "frequency_period": "week" } questionnaire = Project(self.manager, name="New project") questionnaire.reminder_and_deadline = reminder_and_deadline_for_month questionnaire.data_senders = ["rep1", "rep2", "rep3", "rep4", "rep5"] dbm = Mock(spec=DatabaseManager) with patch( "mangrove.form_model.project.get_reporters_who_submitted_data_for_frequency_period" ) as get_reporters_who_submitted_data_for_frequency_period_mock: with patch("mangrove.form_model.project.load_data_senders" ) as load_data_senders_mock: load_data_senders_mock.return_value = ([{ "cols": ["%s" % rep, rep], "short_code": "%s" % rep } for rep in questionnaire.data_senders], [ "short_code", "mobile_number" ], ["What is DS Unique ID", "What is DS phone number"]) get_reporters_who_submitted_data_for_frequency_period_mock.return_value = [ self._create_reporter_entity("rep1"), self._create_reporter_entity("rep3") ] data_senders = questionnaire.get_data_senders_without_submissions_for( date(2011, 11, 8), dbm, "week") get_reporters_who_submitted_data_for_frequency_period_mock.assert_called_with( dbm, questionnaire.id, date(2011, 11, 5), date(2011, 11, 11)) self.assertEqual(3, len(data_senders)) self.assertIn("rep2", [ds["short_code"] for ds in data_senders]) self.assertIn("rep4", [ds["short_code"] for ds in data_senders]) self.assertIn("rep5", [ds["short_code"] for ds in data_senders])