def test_edit_index8(self): """test adding new rows""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) row_headers = model._row_data_header.copy() model.edit_index([('new1', 'new2', 10), ('new1', 'new2', 11)],[6,7],'row') self.assertEqual(model._row_data_header, row_headers + [('new1', 'new2', 10), ('new1', 'new2', 11)])
def test_edit_index9(self): """test adding new rows invalid rows""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) row_headers = model._row_data_header.copy() model.edit_index([('new1', 'new2', 'wrong_type')],[6],'row') self.assertEqual(model._row_data_header, row_headers + [('new1', 'new2', 'wrong_type')]) self.assertEqual(model._invalid_row, set([6]))
def test_edit_index5(self): """test that tuple_index_entries is not updated when index change with invalid indexes""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries = self.tuple_index_entries) set1 = set(model.tuple_index_entries[('test1','test2')]) set2 = set(model.tuple_index_entries[('test3',)]) model.edit_index([(1, 2, 'invalid types')],[1],'row') self.assertEqual(model.tuple_index_entries[('test1','test2')], set1) self.assertEqual(model.tuple_index_entries[('test3',)], set2)
def test_edit_index7(self): """test that index_entries doesn't add invalid entries when editing index""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries = self.tuple_index_entries) set1 = set(model.index_entries['test1']) set2 = set(model.index_entries['test2']) set3 = set(model.index_entries['test3']) model.edit_index([(2, 4, 'invalid_types')],[1],'row') self.assertEqual(model.index_entries['test1'],set1) self.assertEqual(model.index_entries['test2'],set2) self.assertEqual(model.index_entries['test3'],set3)
def test_edit_index4(self): """test that tuple_index_entries is updated when index change""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries = self.tuple_index_entries) set1 = set(model.tuple_index_entries[('test1','test2')]) set2 = set(model.tuple_index_entries[('test3',)]) set1.add(('new1','new2')) set2.add((10,)) model.edit_index([('new1', 'new2', 10)],[1],'row') self.assertEqual(model.tuple_index_entries[('test1','test2')], set1) self.assertEqual(model.tuple_index_entries[('test3',)], set2)
def test_edit_index1(self): """edit existing index to new""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) data = self.dict_data data.pop(('a', 'aa', 1)) delete_data = {('a', 'aa', 1): 'value_a_aa_1'} new_data = {('new1', 'new2', 1): 'value_a_aa_1'} edit_data = {('new1', 'new2', 1): None} model.edit_index([('new1', 'new2', 1)],[0],'row') self.assertEqual(model._row_data_header[0],('new1', 'new2', 1)) self.assertEqual(model._data, {**data, **new_data}) self.assertEqual(model._edit_data, edit_data) self.assertEqual(model._deleted_data, delete_data)
def test_edit_index2(self): """edit existing index to new with pivot""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test1','test2'], ['test3'], [], ()) data = self.dict_data data.pop(('a', 'aa', 1)) delete_data = {('a', 'aa', 1): 'value_a_aa_1'} new_data = {('a', 'aa', 8): 'value_a_aa_1'} edit_data = {('a', 'aa', 8): None} model.edit_index([(8,)],[0],'column') self.assertEqual(model._column_data_header[0],(8,)) self.assertEqual(model._data, {**data, **new_data}) self.assertEqual(model._edit_data, edit_data) self.assertEqual(model._deleted_data, delete_data)
def test_edit_index3(self): """edit existing index to invalid""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) data = self.dict_data data.pop(('a', 'bb', 2)) delete_data = {('a', 'bb', 2): 'value_a_bb_2'} new_data = {} edit_data = {} invalid_row = set([1]) invalid_data = {(1,0): 'value_a_bb_2'} model.edit_index([('new1', 'new2', 'wrong_type')],[1],'row') self.assertEqual(model._data, {**data, **new_data}) self.assertEqual(model._edit_data, edit_data) self.assertEqual(model._deleted_data, delete_data) self.assertEqual(model._invalid_row, invalid_row) self.assertEqual(model._invalid_data, invalid_data) self.assertEqual(model._row_data_header[1],('new1', 'new2', 'wrong_type'))