Пример #1
0
    def test_generate_from_form_schema(self):
        with tempfile.NamedTemporaryFile(mode='wb', suffix='.xlsx') as tmp:
            generate_from_form_export_instance(self.export_instance, tmp)
            wb = load_workbook(filename=tmp.name)
            ws = wb.worksheets[0]
            all_data = list(ws.values)
            headings = all_data.pop(0)
            data_by_headings = [dict(zip(headings, row)) for row in all_data]
            id_row = data_by_headings.pop(0)
            self.assertEqual('id', id_row['Source Field'])
            self.assertEqual('id', id_row['Field'])
            domain_row = data_by_headings.pop(0)
            self.assertEqual('domain', domain_row['Source Field'])
            self.assertEqual('domain', domain_row['Field'])
            main_table = self.export_instance.selected_tables[0]
            self.assertEqual(len(main_table.selected_columns), len(data_by_headings))
            # basic sanity check
            for i, input_column in enumerate(main_table.selected_columns):
                self.assertEqual(input_column.label, data_by_headings[i]['Field'])
                self.assertEqual(FormDETSchemaHelper.transform_path(input_column.item.readable_path),
                                 data_by_headings[i]['Source Field'])

            # test individual fields / types
            data_by_headings_by_field = {
                row['Field']: row for row in data_by_headings
            }
            self.assertEqual('form.@xmlns', data_by_headings_by_field['@xmlns']['Source Field'])

            data_by_headings_by_source_field = {
                row['Source Field']: row for row in data_by_headings
            }
            self.assertEqual('str2date', data_by_headings_by_source_field['received_on']['Map Via'])
            self.assertEqual('str2date', data_by_headings_by_source_field['form.event_date']['Map Via'])
            self.assertEqual('str2num', data_by_headings_by_source_field['form.event_duration_minutes']['Map Via'])
Пример #2
0
    def test_empty(self):
        old_tables = self.export_instance.tables

        def _cleanup():
            self.export_instance.tables = old_tables

        self.addCleanup(_cleanup)

        self.export_instance.tables = []
        with self.assertRaises(DETConfigError):
            generate_from_form_export_instance(self.export_instance, BytesIO())
    def test_main_table_not_selected(self):
        self.export_instance.tables[0].selected = False
        with tempfile.NamedTemporaryFile(mode='wb', suffix='.xlsx') as tmp:
            generate_from_form_export_instance(self.export_instance, tmp)
            wb = load_workbook(filename=tmp.name)
            self.assertEqual(1, len(wb.worksheets))
            repeat_ws = wb.worksheets[0]
            self._check_repeat_worksheet(repeat_ws)

        # restore self.export_instance changes made in this test
        self.export_instance.tables[0].selected = True
Пример #4
0
 def test_generate_from_form_schema(self):
     with tempfile.NamedTemporaryFile(mode='wb', suffix='.xlsx') as tmp:
         generate_from_form_export_instance(self.export_instance, tmp)
         wb = load_workbook(filename=tmp.name)
         repeat_ws = wb.worksheets[1]
         self._check_repeat_worksheet(repeat_ws)