| 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 |