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 = csv_df_builder._query_mongo() 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)