""" Some more test cases for summary tables, involving UNDO. """ import logger import testutil import test_engine log = logger.Logger(__name__, logger.INFO) class TestSummaryUndo(test_engine.EngineTestCase): sample = testutil.parse_test_sample({ "SCHEMA": [ [1, "Person", [ [1, "state", "Text", False], ]] ], "DATA": { "Person": [ ["id", "state", ], [ 1, "NY", ], [ 2, "IL", ], [ 3, "ME", ], [ 4, "NY", ], [ 5, "IL", ], ] } }) def test_summary_undo1(self): # This tests a particular case of a bug when a summary table wasn't fully updated after UNDO. self.load_sample(self.sample) # Create a summary section, grouped by the "State" column. self.apply_user_action(["CreateViewSection", 1, 0, "record", [1], None]) self.assertTableData('Person_summary_state', cols="subset", data=[ [ "id", "state", "count"], [ 1, "NY", 2], [ 2, "IL", 2], [ 3, "ME", 1], ]) out_actions = self.update_record('Person', 4, state='ME') self.assertTableData('Person_summary_state', cols="subset", data=[ [ "id", "state", "count"], [ 1, "NY", 1], [ 2, "IL", 2], [ 3, "ME", 2], ]) self.apply_undo_actions(out_actions.undo[0:1]) self.assertTableData('Person_summary_state', cols="subset", data=[ [ "id", "state", "count"], [ 1, "NY", 2], [ 2, "IL", 2], [ 3, "ME", 1], ])