Skip to content
Snippets Groups Projects
Commit e31e4c6c6aae authored by Nicolas Chauvat's avatar Nicolas Chauvat
Browse files

bugfix: do not remove items for the list you iterate on

parent feb5b751655d
No related branches found
No related tags found
No related merge requests found
...@@ -628,7 +628,7 @@ ...@@ -628,7 +628,7 @@
self.undo_manager.add_operation(RemoveGroupOperation(vref)) self.undo_manager.add_operation(RemoveGroupOperation(vref))
def remove_groups(self): def remove_groups(self):
for vref in self.groupby: for vref in self.groupby[:]:
self.remove_group_var(vref) self.remove_group_var(vref)
def add_sort_var(self, var, asc=True): def add_sort_var(self, var, asc=True):
...@@ -656,7 +656,7 @@ ...@@ -656,7 +656,7 @@
def remove_sort_terms(self): def remove_sort_terms(self):
if self.orderby: if self.orderby:
for term in self.orderby: for term in self.orderby[:]:
self.remove_sort_term(term) self.remove_sort_term(term)
def remove_sort_term(self, term): def remove_sort_term(self, term):
......
...@@ -143,6 +143,17 @@ ...@@ -143,6 +143,17 @@
tree.recover() tree.recover()
tree.check_references() tree.check_references()
self.assertEquals(tree.as_string(), 'Any X GROUPBY X') self.assertEquals(tree.as_string(), 'Any X GROUPBY X')
def test_select_remove_groups(self):
tree = self._parse('Any X,Y GROUPBY X,Y')
tree.save_state()
select = tree.children[0]
select.remove_groups()
tree.check_references()
self.assertEquals(tree.as_string(), 'Any X,Y')
tree.recover()
tree.check_references()
self.assertEquals(tree.as_string(), 'Any X,Y GROUPBY X,Y')
def test_select_base_1(self): def test_select_base_1(self):
tree = self._parse("Any X WHERE X is Person") tree = self._parse("Any X WHERE X is Person")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment