Beispiel #1
0
    def test_get_column(self):
        table_configuration = TableConfiguration(
            path=[
                PathNode(name='form', is_repeat=False),
                PathNode(name="repeat1", is_repeat=True)
            ],
            columns=[
                ExportColumn(item=ScalarItem(path=[
                    PathNode(name='form'),
                    PathNode(name='repeat1', is_repeat=True),
                    PathNode(name='q1')
                ], )),
                ExportColumn(item=ScalarItem(path=[
                    PathNode(name="form"),
                    PathNode(name="user_id"),
                ],
                                             transform=USERNAME_TRANSFORM)),
                ExportColumn(item=ScalarItem(path=[
                    PathNode(name='form'),
                    PathNode(name='repeat1', is_repeat=True),
                    PathNode(name='q2')
                ], )),
            ])

        index, column = table_configuration.get_column(
            [
                PathNode(name='form'),
                PathNode(name='repeat1', is_repeat=True),
                PathNode(name='q1')
            ],
            'ScalarItem',
            None,
        )
        self.assertEqual(column.item.path, [
            PathNode(name='form'),
            PathNode(name='repeat1', is_repeat=True),
            PathNode(name='q1')
        ])
        self.assertEqual(index, 0)

        index, column = table_configuration.get_column(
            [
                PathNode(name='form'),
                PathNode(name='repeat1', is_repeat=True),
                PathNode(name='DoesNotExist')
            ],
            'ScalarItem',
            None,
        )
        self.assertIsNone(column)

        # Verify that get_column ignores deid transforms
        index, column = table_configuration.get_column(
            [PathNode(name="form"),
             PathNode(name="user_id")], 'ScalarItem', USERNAME_TRANSFORM)
        self.assertIsNotNone(column)
        self.assertEqual(index, 1)
    def test_get_column(self):
        table_configuration = TableConfiguration(
            path=['form', 'repeat1'],
            columns=[
                ExportColumn(
                    item=ScalarItem(
                        path=['form', 'repeat1', 'q1'],
                    )
                ),
                ExportColumn(
                    item=ScalarItem(
                        path=['form', 'repeat1', 'q2'],
                    )
                ),
            ]
        )

        column = table_configuration.get_column(['form', 'repeat1', 'q1'])
        self.assertEqual(column.item.path, ['form', 'repeat1', 'q1'])

        column = table_configuration.get_column(['form', 'repeat1', 'DoesNotExist'])
        self.assertIsNone(column)
    def test_table_containing_duplicate_paths_with_differing_doc_types_can_find_either(self):
        path = [PathNode(name='closed')]
        prop1 = ScalarItem(path=path)
        prop2 = ExportItem(path=path)
        table_config = TableConfiguration(
            columns=[
                ExportColumn(item=prop1), ExportColumn(item=prop2)
            ]
        )

        scalarIndex, _ = table_config.get_column(path, 'ScalarItem', None)
        exportIndex, _ = table_config.get_column(path, 'ExportItem', None)

        self.assertEqual(scalarIndex, 0)
        self.assertEqual(exportIndex, 1)
    def test_get_column(self):
        table_configuration = TableConfiguration(
            path=[PathNode(name='form', is_repeat=False), PathNode(name="repeat1", is_repeat=True)],
            columns=[
                ExportColumn(
                    item=ScalarItem(
                        path=[
                            PathNode(name='form'),
                            PathNode(name='repeat1', is_repeat=True),
                            PathNode(name='q1')
                        ],
                    )
                ),
                ExportColumn(
                    item=ScalarItem(
                        path=[
                            PathNode(name="form"),
                            PathNode(name="user_id"),
                        ],
                        transform=USERNAME_TRANSFORM
                    )
                ),
                ExportColumn(
                    item=ScalarItem(
                        path=[
                            PathNode(name='form'),
                            PathNode(name='repeat1', is_repeat=True),
                            PathNode(name='q2')
                        ],
                    )
                ),
            ]
        )

        index, column = table_configuration.get_column(
            [
                PathNode(name='form'),
                PathNode(name='repeat1', is_repeat=True),
                PathNode(name='q1')
            ],
            'ScalarItem',
            None,
        )
        self.assertEqual(
            column.item.path,
            [
                PathNode(name='form'),
                PathNode(name='repeat1', is_repeat=True),
                PathNode(name='q1')
            ]
        )
        self.assertEqual(index, 0)

        index, column = table_configuration.get_column(
            [
                PathNode(name='form'),
                PathNode(name='repeat1', is_repeat=True),
                PathNode(name='DoesNotExist')
            ],
            'ScalarItem',
            None,
        )
        self.assertIsNone(column)

        # Verify that get_column ignores deid transforms
        index, column = table_configuration.get_column(
            [PathNode(name="form"), PathNode(name="user_id")],
            'ScalarItem',
            USERNAME_TRANSFORM
        )
        self.assertIsNotNone(column)
        self.assertEqual(index, 1)