def test_missing_merge_fields_both_sides(self): key = 'ID' fields = ['Example_IDs'] table = [{'ID': 'id1'}, {}, {'ID': 'id3', 'Example_IDs': 'ex3'}] new_table = p.merge_array_rows(table, key, fields) expected = [{'ID': 'id1'}, {'ID': 'id3', 'Example_IDs': ['ex3']}] self.assertEqual(new_table, expected)
def test_only_merge_if_necessary(self): key = 'ID' fields = ['Example_IDs'] table = [{ 'ID': 'id1', 'Example_IDs': 'ex1' }, { 'ID': 'id2', 'Example_IDs': 'ex2' }, { 'ID': 'id3', 'Example_IDs': 'ex3' }] new_table = p.merge_array_rows(table, key, fields) # I want all array fields consistently to be lists expected = [{ 'ID': 'id1', 'Example_IDs': ['ex1'] }, { 'ID': 'id2', 'Example_IDs': ['ex2'] }, { 'ID': 'id3', 'Example_IDs': ['ex3'] }] self.assertEqual(new_table, expected)
def test_merge_multiple_rows(self): key = 'ID' fields = ['Example_IDs'] table = [{ 'ID': 'id1', 'Example_IDs': 'ex1' }, { 'Example_IDs': 'ex2' }, { 'Example_IDs': 'ex3' }] new_table = p.merge_array_rows(table, key, fields) expected = [{'ID': 'id1', 'Example_IDs': ['ex1', 'ex2', 'ex3']}] self.assertEqual(new_table, expected)
def test_first_elem_lacks_primary_key(self): key = 'ID' fields = ['Example_IDs'] table = [{ 'Example_IDs': 'ex1' }, { 'Example_IDs': 'ex2' }, { 'ID': 'id3', 'Example_IDs': 'ex3' }] new_table = p.merge_array_rows(table, key, fields) expected = [{ 'Example_IDs': ['ex1', 'ex2'] }, { 'ID': 'id3', 'Example_IDs': ['ex3'] }] self.assertEqual(new_table, expected)