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)
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)