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)