Beispiel #1
0
    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])
Beispiel #2
0
    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)