OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import optparse | 5 import optparse |
6 import unittest | 6 import unittest |
7 | 7 |
8 from webkitpy.common.net.buildbot import Build | 8 from webkitpy.common.net.buildbot import Build |
9 from webkitpy.common.net.layouttestresults import LayoutTestResults | 9 from webkitpy.common.net.layouttestresults import LayoutTestResults |
10 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2 | 10 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2 |
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 for cmd_line, cwd in commands: | 927 for cmd_line, cwd in commands: |
928 out = self.run_command(cmd_line, cwd=cwd) | 928 out = self.run_command(cmd_line, cwd=cwd) |
929 if 'rebaseline-test-internal' in cmd_line: | 929 if 'rebaseline-test-internal' in cmd_line: |
930 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) | 930 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) |
931 command_outputs.append([0, out, '']) | 931 command_outputs.append([0, out, '']) |
932 | 932 |
933 new_calls = self.calls[num_previous_calls:] | 933 new_calls = self.calls[num_previous_calls:] |
934 self.calls = self.calls[:num_previous_calls] | 934 self.calls = self.calls[:num_previous_calls] |
935 self.calls.append(new_calls) | 935 self.calls.append(new_calls) |
936 return command_outputs | 936 return command_outputs |
| 937 |
| 938 |
| 939 class ChangeSetTest(unittest.TestCase): |
| 940 |
| 941 def test_constructor_and_getters(self): |
| 942 change_set = ChangeSet( |
| 943 files_to_add=['add/a.html', 'add/b.html'], |
| 944 files_to_delete=['del/x.html'], |
| 945 lines_to_remove={'my/test.html': ['my-builder']}) |
| 946 self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/b.html']) |
| 947 self.assertEqual(change_set.files_to_delete, ['del/x.html']) |
| 948 self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-build
er']}) |
| 949 |
| 950 def test_files_to_add_and_files_to_delete_are_sorted_no_dupes(self): |
| 951 change_set = ChangeSet(files_to_add=['b', 'a', 'a'], files_to_delete=['x
', 'y', 'x']) |
| 952 self.assertEqual(change_set.files_to_add, ['a', 'b']) |
| 953 self.assertEqual(change_set.files_to_delete, ['x', 'y']) |
| 954 |
| 955 def test_files_both_added_and_deleted_are_ignored(self): |
| 956 change_set = ChangeSet(files_to_add=['a', 'b', 'c'], files_to_delete=['c
', 'd', 'e']) |
| 957 self.assertEqual(change_set.files_to_add, ['a', 'b']) |
| 958 self.assertEqual(change_set.files_to_delete, ['d', 'e']) |
| 959 change_set.add_file('d') |
| 960 self.assertEqual(change_set.files_to_add, ['a', 'b']) |
| 961 self.assertEqual(change_set.files_to_delete, ['e']) |
| 962 change_set.delete_file('b') |
| 963 self.assertEqual(change_set.files_to_add, ['a']) |
| 964 self.assertEqual(change_set.files_to_delete, ['e']) |
| 965 |
| 966 def test_add_file(self): |
| 967 change_set = ChangeSet() |
| 968 change_set.add_file('a') |
| 969 change_set.add_file('b') |
| 970 change_set.add_file('b') |
| 971 self.assertEqual(change_set.files_to_add, ['a', 'b']) |
| 972 |
| 973 def test_delete_file(self): |
| 974 change_set = ChangeSet() |
| 975 change_set.delete_file('a') |
| 976 change_set.delete_file('b') |
| 977 change_set.delete_file('b') |
| 978 self.assertEqual(change_set.files_to_delete, ['a', 'b']) |
| 979 |
| 980 def test_remove_line(self): |
| 981 change_set = ChangeSet() |
| 982 change_set.remove_line('test', 'builder-b') |
| 983 change_set.remove_line('test', 'builder-a') |
| 984 change_set.remove_line('test', 'builder-a') |
| 985 self.assertEqual( |
| 986 change_set.lines_to_remove, |
| 987 {'test': ['builder-a', 'builder-b']}) |
| 988 |
| 989 def test_from_dict(self): |
| 990 change_set = ChangeSet.from_dict({ |
| 991 'add': ['to/add.html'], |
| 992 'remove-lines': [{'test': 'some/test.html', 'builder': 'builder-name
'}] |
| 993 }) |
| 994 self.assertEqual(change_set.files_to_add, ['to/add.html']) |
| 995 self.assertEqual(change_set.lines_to_remove, {'some/test.html': ['builde
r-name']}) |
| 996 |
| 997 def test_to_dict(self): |
| 998 change_set = ChangeSet( |
| 999 files_to_add=['add/b.html', 'add/a.html'], |
| 1000 files_to_delete=['del/x.html'], |
| 1001 lines_to_remove={ |
| 1002 'x/test.html': ['builder-b', 'builder-b', 'builder-a'], |
| 1003 'y/test.html': [], |
| 1004 'z/test.html': ['builder-c']}) |
| 1005 self.assertEqual(change_set.to_dict(), { |
| 1006 'add': ['add/a.html', 'add/b.html'], |
| 1007 'delete': ['del/x.html'], |
| 1008 'remove-lines': [ |
| 1009 {'test': 'x/test.html', 'builder': 'builder-a'}, |
| 1010 {'test': 'x/test.html', 'builder': 'builder-b'}, |
| 1011 {'test': 'z/test.html', 'builder': 'builder-c'}, |
| 1012 ], |
| 1013 }) |
| 1014 |
| 1015 def test_update(self): |
| 1016 change_set = ChangeSet( |
| 1017 files_to_add=['add/a.html', 'add/b.html'], |
| 1018 files_to_delete=['del/x.html'], |
| 1019 lines_to_remove={'my/test.html': ['my-builder']}) |
| 1020 change_set.update(ChangeSet( |
| 1021 files_to_add=['add/a.html', 'add/c.html', 'del/x.html'], |
| 1022 files_to_delete=['add/b.html', 'del/y.html'], |
| 1023 lines_to_remove={'my/test.html': ['my-builder', 'other-builder']})) |
| 1024 self.assertEqual(change_set.files_to_add, ['add/a.html', 'add/c.html']) |
| 1025 self.assertEqual(change_set.files_to_delete, ['del/y.html']) |
| 1026 self.assertEqual(change_set.lines_to_remove, {'my/test.html': ['my-build
er', 'other-builder']}) |
OLD | NEW |