From 1371911c94135cf52f871db8e8934ae5fe5bfa3f Mon Sep 17 00:00:00 2001 From: Paul Makepeace Date: Sun, 24 Apr 2011 20:45:53 -0400 Subject: [PATCH] Add mass_edit() and edit() --- google/refine.py | 14 +++++++++++++- google/test/test_refine.py | 6 +++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/google/refine.py b/google/refine.py index 33de914..b88f299 100644 --- a/google/refine.py +++ b/google/refine.py @@ -402,4 +402,16 @@ class RefineProject: 'engine': self.engine.as_json(), 'columnName': column, 'expression': expression, 'onError': on_error, 'repeat': repeat, 'repeatCount': repeat_count}) - return response \ No newline at end of file + return response + + def edit(self, column, edit_from, edit_to): + edits = [{'from': [edit_from], 'to': edit_to}] + return self.mass_edit(column, edits) + + def mass_edit(self, column, edits, expression='value'): + """edits is [{'from': ['foo'], 'to': 'bar'}, {...}]""" + edits = json.dumps(edits) + response = self.do_json('mass-edit', { + 'engine': self.engine.as_json(), 'columnName': column, + 'expression': expression, 'edits': edits}) + return response diff --git a/google/test/test_refine.py b/google/test/test_refine.py index 57d0f85..bf603f7 100644 --- a/google/test/test_refine.py +++ b/google/test/test_refine.py @@ -208,9 +208,13 @@ class TutorialTestTransformAndClustering(RefineTestCase): self.assertEqual(len(response.facets[0].choices), 76) response = self.project.text_transform(column='Office Title', expression='value.trim()') - self.assertTrue('6895' in response['historyEntry']['description']) + self.assertTrue('6895' in response['historyEntry']['description']) response = self.project.compute_facets() self.assertEqual(len(response.facets[0].choices), 67) + # {5} + response = self.project.edit(column='Office Title', + 'Councilmen', 'Councilman') + self.assertTrue('13' in response['historyEntry']['description']) if __name__ == '__main__':