Beispiel #1
0
    def test_should_get_statistic_result_after_option_value_changed(self):
        """
            Function to test getting statistic result of submissions after option value changed.
            question name ordered by field
            options ordered by count(desc),option(alphabetic)
            total = submission count of this question
        """
        eid_field = TextField(label="What is associated entity?",
                              code="EID",
                              name="What is associatéd entity?",
                              entity_question_flag=True,
                              ddtype=self.ddtype)
        blood_type_field = SelectField(label="What is your blood group?",
                                       code="BG",
                                       name="What is your blood group?",
                                       options=[("Type 1", "a"),
                                                ("Type 2", "b")],
                                       single_select_flag=True,
                                       ddtype=self.ddtype)

        form_model = FormModelBuilder(self.manager, ['clinic'],
                                      form_code='cli001').add_fields(
                                          eid_field, blood_type_field).build()

        self.submit_data({'form_code': 'cli001', 'EID': 'cid001', 'BG': 'a'})

        blood_type_field = SelectField(label="What is your blood group?",
                                       code="BG",
                                       name="What is your blood group?",
                                       options=[("O+", "a"), ("O-", "b"),
                                                ("AB", "c"), ("B+", "d")],
                                       single_select_flag=True,
                                       ddtype=self.ddtype)
        self._edit_fields(form_model, blood_type_field)
        self.submit_data({'form_code': 'cli001', 'EID': 'cid001', 'BG': 'a'})

        submissions = successful_submissions(self.manager,
                                             form_model.form_code)
        analyzer = SubmissionAnalyzer(form_model, self.manager, self.org_id,
                                      submissions)
        statistics = analyzer.get_analysis_statistics()

        expected = [[
            "What is your blood group?", field_attributes.SELECT_FIELD, 2,
            [["O+", 1], ['Type 1', 1], ["AB", 0], ["B+", 0], ["O-", 0]]
        ]]
        self.assertEqual(expected, statistics)
Beispiel #2
0
    def test_should_get_statistic_result_after_answer_type_changed_from_word_to_mc(
            self):
        eid_field = TextField(label="What is associated entity?",
                              code="EID",
                              name="What is associatéd entity?",
                              entity_question_flag=True,
                              ddtype=self.ddtype)
        blood_type_field = TextField(label="What is your blood group?",
                                     code="BG",
                                     name="What is your blood group?",
                                     ddtype=self.ddtype)

        form_model = FormModelBuilder(self.manager, ['clinic'],
                                      form_code='cli001').add_fields(
                                          eid_field, blood_type_field).build()
        self.submit_data({
            'form_code': 'cli001',
            'EID': 'cid001',
            'BG': 'unknown'
        })

        blood_type_field = SelectField(label="What is your blood group?",
                                       code="BG",
                                       name="What is your blood group?",
                                       options=[("O+", "a"), ("O-", "b"),
                                                ("AB", "c"), ("B+", "d")],
                                       single_select_flag=False,
                                       ddtype=self.ddtype)
        self._edit_fields(form_model, blood_type_field)
        self.submit_data({'form_code': 'cli001', 'EID': 'cid001', 'BG': 'ab'})

        submissions = successful_submissions(self.manager,
                                             form_model.form_code)
        analyzer = SubmissionAnalyzer(form_model, self.manager, self.org_id,
                                      submissions)
        statistics = analyzer.get_analysis_statistics()

        expected = [[
            "What is your blood group?", field_attributes.MULTISELECT_FIELD, 2,
            [["O+", 1], ["O-", 1], ['unknown', 1], ["AB", 0], ["B+", 0]]
        ]]
        self.assertEqual(expected, statistics)