def test_split_select_multiples_values(self): """ Test select multiples choices are split and their values as the data. """ self._publish_nested_repeats_form() self._submit_fixture_instance("nested_repeats", "01") csv_df_builder = CSVDataFrameBuilder(self.user.username, self.xform.id_string, include_images=False) # pylint: disable=protected-access cursor = [k for k in csv_df_builder._query_data()] record = cursor[0] select_multiples = \ CSVDataFrameBuilder._collect_select_multiples(self.xform) result = CSVDataFrameBuilder._split_select_multiples( record, select_multiples, value_select_multiples=True) expected_result = { u'web_browsers/ie': u'ie', u'web_browsers/safari': u'safari', u'web_browsers/firefox': None, u'web_browsers/chrome': None } # build a new dictionary only composed of the keys we want to use in # the comparison result = dict([(key, result[key]) for key in list(result) if key in list(expected_result)]) self.assertEqual(expected_result, result)
def test_split_select_multiples(self): self._publish_nested_repeats_form() self._submit_fixture_instance("nested_repeats", "01") csv_df_builder = CSVDataFrameBuilder(self.user.username, self.xform.id_string, include_images=False) cursor = [k for k in csv_df_builder._query_data()] record = cursor[0] select_multiples = \ CSVDataFrameBuilder._collect_select_multiples(self.xform) result = CSVDataFrameBuilder._split_select_multiples( record, select_multiples) expected_result = { u'web_browsers/ie': True, u'web_browsers/safari': True, u'web_browsers/firefox': False, u'web_browsers/chrome': False } # build a new dictionary only composed of the keys we want to use in # the comparison result = dict([(key, result[key]) for key in result.keys() if key in expected_result.keys()]) self.assertEqual(expected_result, result) csv_df_builder = CSVDataFrameBuilder(self.user.username, self.xform.id_string, binary_select_multiples=True) result = csv_df_builder._split_select_multiples( record, select_multiples) expected_result = { u'web_browsers/ie': 1, u'web_browsers/safari': 1, u'web_browsers/firefox': 0, u'web_browsers/chrome': 0 } # build a new dictionary only composed of the keys we want to use in # the comparison result = dict([(key, result[key]) for key in result.keys() if key in expected_result.keys()]) self.assertEqual(expected_result, result)
def test_split_select_multiples(self): self._publish_nested_repeats_form() dd = self.xform.data_dictionary() self._submit_fixture_instance("nested_repeats", "01") csv_df_builder = CSVDataFrameBuilder(self.user.username, self.xform.id_string) cursor = [k for k in csv_df_builder._query_data()] record = cursor[0] select_multiples = CSVDataFrameBuilder._collect_select_multiples(dd) result = CSVDataFrameBuilder._split_select_multiples(record, select_multiples) expected_result = { u'web_browsers/ie': True, u'web_browsers/safari': True, u'web_browsers/firefox': False, u'web_browsers/chrome': False } # build a new dictionary only composed of the keys we want to use in # the comparison result = dict([(key, result[key]) for key in result.keys() if key in expected_result.keys()]) self.assertEqual(expected_result, result) csv_df_builder = CSVDataFrameBuilder(self.user.username, self.xform.id_string, binary_select_multiples=True) result = csv_df_builder._split_select_multiples(record, select_multiples) expected_result = { u'web_browsers/ie': 1, u'web_browsers/safari': 1, u'web_browsers/firefox': 0, u'web_browsers/chrome': 0 } # build a new dictionary only composed of the keys we want to use in # the comparison result = dict([(key, result[key]) for key in result.keys() if key in expected_result.keys()]) self.assertEqual(expected_result, result)