def test_delete_index_values_with_same_name2(self): """Test that deleteing indexes with same name deletes all data""" model = PivotModel() data = [['a', 'b', 'c', 1], ['d', 'a', 'c', 1] , ['c','d','e', 1]] model.set_new_data(data, self.index_names, self.index_types, index_real_names = ['test','test','test3']) model.delete_index_values({'test': set(['a'])}) self.assertEqual(model._data, {('c','d','e'): 1})
def test_delete_index_values_with_same_name4(self): """Test that deleteing indexes with same name deletes all in _used_index_entries""" model = PivotModel() data = [['a', 'b', 'c', 1], ['d', 'a', 'c', 1] , ['c','d','e', 1]] model.set_new_data(data, self.index_names, self.index_types, index_real_names = ['test','test','test3'], used_index_values={('test',): set(['a','b','c','d'])}) model.delete_index_values({'test': set(['a'])}) self.assertEqual(model._used_index_values[('test',)], set(['b','c','d']))
def test_delete_index_values6(self): """test deleting index values deletes them from _added_index_entries""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model._added_index_entries['test1'] = set(['a','b','c']) model.delete_index_values({'test1': set(['a'])}) self.assertEqual(model._added_index_entries['test1'], set(['b','c']))
def test_delete_entries_with_wrong_index(self): """Test that deleting an entrie with wrong index doesn't delete from used_index_values""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, used_index_values = {('test1', 'test2'): set(['wrong_index'])}) model._add_index_value('wrong_index','test1') model.delete_index_values({'test2': set(['wrong_index'])}) self.assertEqual(model._used_index_values, {('test1', 'test2'): set(['wrong_index'])})
def test_delete_index_values5(self): """test deleting index values also deletes tuple index entries""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries=self.tuple_index_entries) expected_tuple_values = set([('b', 'cc'), ('c', 'cc'), ('d', 'dd'), ('e', 'ee'), ('f', 'ee')]) deleted_tuple_values = set([('a','aa'), ('a', 'bb'), ('a', 'cc')]) model.delete_index_values({'test1': set(['a'])}) self.assertEqual(model.tuple_index_entries[('test1', 'test2')], expected_tuple_values) self.assertEqual(model._deleted_tuple_index_entries[('test1', 'test2')], deleted_tuple_values)
def test_delete_index_then_add(self): """test that deleting an index and then readding it removes it from _deleted_index_entries and doesn't add to _added_index_entries""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, used_index_values = {('test1', 'test2'): set()}) model.delete_index_values({'test1': set(['a'])}) self.assertEqual(model._deleted_index_entries['test1'], set(['a'])) self.assertEqual(model._added_index_entries['test1'], set()) result1 = model._add_index_value('a', 'test1') self.assertTrue(result1) self.assertEqual(model._added_index_entries['test1'], set()) self.assertEqual(model._deleted_index_entries['test1'], set())
def test_delete_index_values3(self): """test deleting index values deletes column headers""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, rows = ('test1','test2'), columns = ('test3',)) row_headers = model._column_data_header.copy() row_headers.pop(4) row_headers_set = set(model._row_data_header_set) row_headers_set.discard((5,)) model.delete_index_values({'test3': set([5])}) self.assertEqual(model._column_data_header, row_headers) self.assertEqual(model._row_data_header_set, row_headers_set)
def test_delete_index_values1(self): """test deleting index values deletes data""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) data_dict = self.dict_data deleted_data = {} deleted_data[('a','aa',1)] = data_dict.pop(('a','aa',1)) deleted_data[('a','bb',2)] = data_dict.pop(('a','bb',2)) model.delete_index_values({'test1': set(['a'])}) self.assertEqual(model._data, data_dict) self.assertEqual(model._deleted_data, deleted_data)
def test_delete_index_values2(self): """test deleting index values deletes row headers""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) row_headers = model._row_data_header.copy() row_headers.pop(0) row_headers.pop(0) row_headers_set = set(model._row_data_header_set) row_headers_set.discard(('a','aa',1)) row_headers_set.discard(('a','bb',2)) model.delete_index_values({'test1': set(['a'])}) self.assertEqual(model._row_data_header, row_headers) self.assertEqual(model._row_data_header_set, row_headers_set)