Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(560)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py

Issue 2341643005: In rebaseline.py, update SCM and expectations all at once after all commands. (Closed)
Patch Set: Add unit test for ChangeSet Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_cl.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
index abe3f60e7802c8096790e1b5dd92547b3b9090b6..20c1de4bd3a2563c14125713640453abe4c361e4 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
@@ -934,3 +934,93 @@ class MockLineRemovingExecutive(MockExecutive):
self.calls = self.calls[:num_previous_calls]
self.calls.append(new_calls)
return command_outputs
+
+
+class ChangeSetTest(unittest.TestCase):
+
+ def test_constructor_and_getters(self):
+ change_set = ChangeSet(
+ files_to_add=['add/a.html', 'add/b.html'],
+ files_to_delete=['del/x.html'],
+ lines_to_remove={'my/test.html': ['my-builder']})
+ self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/b.html'])
+ self.assertEqual(change_set.files_to_delete, ['del/x.html'])
+ self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-builder']})
+
+ def test_files_to_add_and_files_to_delete_are_sorted_no_dupes(self):
+ change_set = ChangeSet(files_to_add=['b', 'a', 'a'], files_to_delete=['x', 'y', 'x'])
+ self.assertEqual(change_set.files_to_add, ['a', 'b'])
+ self.assertEqual(change_set.files_to_delete, ['x', 'y'])
+
+ def test_files_both_added_and_deleted_are_ignored(self):
+ change_set = ChangeSet(files_to_add=['a', 'b', 'c'], files_to_delete=['c', 'd', 'e'])
+ self.assertEqual(change_set.files_to_add, ['a', 'b'])
+ self.assertEqual(change_set.files_to_delete, ['d', 'e'])
+ change_set.add_file('d')
+ self.assertEqual(change_set.files_to_add, ['a', 'b'])
+ self.assertEqual(change_set.files_to_delete, ['e'])
+ change_set.delete_file('b')
+ self.assertEqual(change_set.files_to_add, ['a'])
+ self.assertEqual(change_set.files_to_delete, ['e'])
+
+ def test_add_file(self):
+ change_set = ChangeSet()
+ change_set.add_file('a')
+ change_set.add_file('b')
+ change_set.add_file('b')
+ self.assertEqual(change_set.files_to_add, ['a', 'b'])
+
+ def test_delete_file(self):
+ change_set = ChangeSet()
+ change_set.delete_file('a')
+ change_set.delete_file('b')
+ change_set.delete_file('b')
+ self.assertEqual(change_set.files_to_delete, ['a', 'b'])
+
+ def test_remove_line(self):
+ change_set = ChangeSet()
+ change_set.remove_line('test', 'builder-b')
+ change_set.remove_line('test', 'builder-a')
+ change_set.remove_line('test', 'builder-a')
+ self.assertEqual(
+ change_set.lines_to_remove,
+ {'test': ['builder-a', 'builder-b']})
+
+ def test_from_dict(self):
+ change_set = ChangeSet.from_dict({
+ 'add': ['to/add.html'],
+ 'remove-lines': [{'test': 'some/test.html', 'builder': 'builder-name'}]
+ })
+ self.assertEqual(change_set.files_to_add, ['to/add.html'])
+ self.assertEqual(change_set.lines_to_remove, {'some/test.html': ['builder-name']})
+
+ def test_to_dict(self):
+ change_set = ChangeSet(
+ files_to_add=['add/b.html', 'add/a.html'],
+ files_to_delete=['del/x.html'],
+ lines_to_remove={
+ 'x/test.html': ['builder-b', 'builder-b', 'builder-a'],
+ 'y/test.html': [],
+ 'z/test.html': ['builder-c']})
+ self.assertEqual(change_set.to_dict(), {
+ 'add': ['add/a.html', 'add/b.html'],
+ 'delete': ['del/x.html'],
+ 'remove-lines': [
+ {'test': 'x/test.html', 'builder': 'builder-a'},
+ {'test': 'x/test.html', 'builder': 'builder-b'},
+ {'test': 'z/test.html', 'builder': 'builder-c'},
+ ],
+ })
+
+ def test_update(self):
+ change_set = ChangeSet(
+ files_to_add=['add/a.html', 'add/b.html'],
+ files_to_delete=['del/x.html'],
+ lines_to_remove={'my/test.html': ['my-builder']})
+ change_set.update(ChangeSet(
+ files_to_add=['add/a.html', 'add/c.html', 'del/x.html'],
+ files_to_delete=['add/b.html', 'del/y.html'],
+ lines_to_remove={'my/test.html': ['my-builder', 'other-builder']}))
+ self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/c.html'])
+ self.assertEqual(change_set.files_to_delete, ['del/y.html'])
+ self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-builder', 'other-builder']})
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698