Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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])