diff --git a/google/refine.py b/google/refine.py index dd9ce0d..42c0a04 100644 --- a/google/refine.py +++ b/google/refine.py @@ -138,6 +138,13 @@ class Engine(object): def add_facet(self, facet): self.facets.append(facet) + def remove_all(self): + self.facets = [] + + def reset_all(self): + for facet in self.facets: + facet.reset() + class RefineServer(object): """Communicate with a Refine server.""" diff --git a/google/test/test_engine.py b/google/test/test_engine.py index 8aa4843..85f0347 100644 --- a/google/test/test_engine.py +++ b/google/test/test_engine.py @@ -52,6 +52,20 @@ class FacetTest(unittest.TestCase): facet.reset() self.assertEqual(len(facet.selection), 0) + def test_reset_remove(self): + text_facet1 = TextFacet('column name') + text_facet1.include('element') + text_facet2 = TextFacet('column name 2') + text_facet2.include('element 2') + engine = Engine([text_facet1, text_facet2]) + self.assertEqual(len(engine), 2) + self.assertEqual(len(text_facet1.selection), 1) + engine.reset_all() + self.assertEqual(len(text_facet1.selection), 0) + self.assertEqual(len(text_facet2.selection), 0) + engine.remove_all() + self.assertEqual(len(engine), 0) + def test_facets_response(self): response = """{"facets":[{"name":"Party Code","expression":"value","columnName":"Party Code","invert":false,"choices":[{"v":{"v":"D","l":"D"},"c":3700,"s":false},{"v":{"v":"R","l":"R"},"c":1613,"s":false},{"v":{"v":"N","l":"N"},"c":15,"s":false},{"v":{"v":"O","l":"O"},"c":184,"s":false}],"blankChoice":{"s":false,"c":1446}}],"mode":"row-based"}""" diff --git a/google/test/test_refine.py b/google/test/test_refine.py index d29174b..f315a51 100644 --- a/google/test/test_refine.py +++ b/google/test/test_refine.py @@ -160,6 +160,10 @@ class TutorialTestFacets(RefineTestCase): self.assertEqual(len(ot.choices), 21) self.assertEqual(ot.choices['Chief of Police'].count, 2) self.assertEqual(ot.choices['Chief of Police '].count, 211) + # {14} + self.project.engine.remove_all() + response = self.project.get_rows() + self.assertEqual(response.filtered, 6958) if __name__ == '__main__':