def test_should_return_data_senders_without_submissions(self): reminder_and_deadline_for_month = { "reminders_enabled": "True", "deadline_month": "5", "deadline_type": "current", "frequency_enabled": "True", "has_deadline": "True", "frequency_period": "month" } project = Project() project.reminder_and_deadline = reminder_and_deadline_for_month project.data_senders = ["rep1", "rep2", "rep3", "rep4", "rep5"] dbm = Mock(spec=DatabaseManager) with patch( "datawinners.project.models.get_reporters_who_submitted_data_for_frequency_period") as get_reporters_who_submitted_data_for_frequency_period_mock: with patch("datawinners.project.models.load_all_subjects_of_type") as load_all_subjects_of_type_mock: load_all_subjects_of_type_mock.return_value = ( [{"cols": ["rep%s" % i, i], "short_code": "rep%s" % i} for i in range( 10)], ["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 = project.get_data_senders_without_submissions_for(date(2011, 11, 5), dbm) 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])
def test_get_associated_data_senders(self): entity = Entity(self.manager, entity_type=["reporter"], short_code="rep1") entity_id = entity.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, entity.short_code) self.assertEquals(result[0].id, entity_id)