Changeset 52239 in webkit
- Timestamp:
- Dec 16, 2009 11:40:27 PM (14 years ago)
- Location:
- trunk/WebKitTools
- Files:
-
- 9 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKitTools/ChangeLog
r52238 r52239 1 2009-12-16 Eric Seidel <eric@webkit.org> 2 3 Reviewed by Adam Barth. 4 5 post-diff is failing with exception under guess_reviewer_from_bug 6 https://bugs.webkit.org/show_bug.cgi?id=32642 7 8 Also refactor output capturing code into 9 OutputCapture.assert_outputs to share more code between tests. 10 11 * Scripts/modules/buildsteps.py: 12 - Add the missing include. 13 - Give guess_reviewer_from_bug a private underscore. 14 * Scripts/modules/buildsteps_unittest.py: Added. 15 - Test to make sure _guess_reviewer_from_bug works as expected. 16 * Scripts/modules/commands/commandtest.py: 17 - Custom code is now obsoleted by OutputCapture.assert_outputs 18 * Scripts/modules/commands/queues_unittest.py: 19 - ditto 20 * Scripts/modules/credentials_unittest.py: 21 - ditto 22 * Scripts/modules/mock_bugzillatool.py: 23 - fetch_reviewed_patches_from_bug can never return None 24 * Scripts/modules/multicommandtool_unittest.py: 25 - Custom code is now obsoleted by OutputCapture.assert_outputs 26 * Scripts/modules/outputcapture.py: 27 - Add assert_outputs to share more code between tests. 28 * Scripts/run-webkit-unittests: 29 - Add buildsteps_unittest.py 30 1 31 2009-12-16 Adam Barth <abarth@webkit.org> 2 32 -
trunk/WebKitTools/Scripts/modules/buildsteps.py
r52133 r52239 32 32 33 33 from modules.comments import bug_comment_from_commit_text 34 from modules.grammar import pluralize 34 35 from modules.logging import log, error 35 36 from modules.webkitport import WebKitPort … … 231 232 ] 232 233 233 def guess_reviewer_from_bug(self, bug_id):234 def _guess_reviewer_from_bug(self, bug_id): 234 235 patches = self._tool.bugs.fetch_reviewed_patches_from_bug(bug_id) 235 236 if len(patches) != 1: … … 248 249 log("No bug id provided and --reviewer= not provided. Not updating ChangeLogs with reviewer.") 249 250 return 250 reviewer = self. guess_reviewer_from_bug(bug_id)251 reviewer = self._guess_reviewer_from_bug(bug_id) 251 252 252 253 if not reviewer: -
trunk/WebKitTools/Scripts/modules/buildsteps_unittest.py
r52238 r52239 29 29 import unittest 30 30 31 from modules. mock import Mock31 from modules.buildsteps import UpdateChangelogsWithReviewerStep 32 32 from modules.mock_bugzillatool import MockBugzillaTool 33 33 from modules.outputcapture import OutputCapture 34 34 35 class CommandsTest(unittest.TestCase):36 def assert_execute_outputs(self, command, args, expected_stdout="", expected_stderr="", options=Mock(), tool=MockBugzillaTool()):35 class UpdateChangelogsWithReviewerStepTest(unittest.TestCase): 36 def test_guess_reviewer_from_bug(self): 37 37 capture = OutputCapture() 38 capture.capture_output() 39 command.execute(options, args, tool) 40 (stdout_string, stderr_string) = capture.restore_output() 41 self.assertEqual(stdout_string, expected_stdout) 42 self.assertEqual(stderr_string, expected_stderr) 38 step = UpdateChangelogsWithReviewerStep(MockBugzillaTool(), []) 39 expected_stderr = "0 reviewed patches on bug 1, cannot infer reviewer.\n" 40 capture.assert_outputs(self, step._guess_reviewer_from_bug, [1], expected_stderr=expected_stderr) -
trunk/WebKitTools/Scripts/modules/commands/commandtest.py
r52025 r52239 35 35 class CommandsTest(unittest.TestCase): 36 36 def assert_execute_outputs(self, command, args, expected_stdout="", expected_stderr="", options=Mock(), tool=MockBugzillaTool()): 37 capture = OutputCapture() 38 capture.capture_output() 39 command.execute(options, args, tool) 40 (stdout_string, stderr_string) = capture.restore_output() 41 self.assertEqual(stdout_string, expected_stdout) 42 self.assertEqual(stderr_string, expected_stderr) 37 OutputCapture().assert_outputs(self, command.execute, [options, args, tool], expected_stdout=expected_stdout, expected_stderr=expected_stderr) -
trunk/WebKitTools/Scripts/modules/commands/queues_unittest.py
r52145 r52239 40 40 41 41 class AbstractQueueTest(CommandsTest): 42 def _assert_output(self, function, args, expected_stdout="", expected_stderr=""):43 capture = OutputCapture()44 capture.capture_output()45 function(*args)46 (stdout_string, stderr_string) = capture.restore_output()47 self.assertEqual(stdout_string, expected_stdout)48 self.assertEqual(stderr_string, expected_stderr)49 50 42 def _assert_log_progress_output(self, patch_ids, progress_output): 51 self._assert_output(TestQueue().log_progress, [patch_ids], expected_stderr=progress_output)43 OutputCapture().assert_outputs(self, TestQueue().log_progress, [patch_ids], expected_stderr=progress_output) 52 44 53 45 def test_log_progress(self): -
trunk/WebKitTools/Scripts/modules/credentials_unittest.py
r52135 r52239 76 76 credentials = Credentials("example.com", executive=executive_mock) 77 77 78 output = OutputCapture() 79 output.capture_output() 80 credentials._run_security_tool(username) 81 (stdout_output, stderr_output) = output.restore_output() 82 self.assertEqual(stdout_output, "") 83 self.assertEqual(stderr_output, "Reading Keychain for example.com account and password. Click \"Allow\" to continue...\n") 78 expected_stderr = "Reading Keychain for example.com account and password. Click \"Allow\" to continue...\n" 79 OutputCapture().assert_outputs(self, credentials._run_security_tool, [username], expected_stderr=expected_stderr) 84 80 85 81 security_args = ["/usr/bin/security", "find-internet-password", "-g", "-s", "example.com"] -
trunk/WebKitTools/Scripts/modules/mock_bugzillatool.py
r52145 r52239 67 67 if bug_id == 42: 68 68 return [self.patch1, self.patch2] 69 return None69 return [] 70 70 71 71 def fetch_attachments_from_bug(self, bug_id): -
trunk/WebKitTools/Scripts/modules/multicommandtool_unittest.py
r51403 r52239 64 64 def test_required_arguments(self): 65 65 two_required_arguments = TrivialCommand(argument_names="ARG1 ARG2 [ARG3]") 66 capture = OutputCapture()67 capture.capture_output()68 exit_code = two_required_arguments.check_arguments_and_execute(["foo"], TrivialTool())69 (stdout_string, stderr_string) = capture.restore_output()70 66 expected_missing_args_error = "2 arguments required, 1 argument provided. Provided: 'foo' Required: ARG1 ARG2\nSee 'trivial-tool help trivial' for usage.\n" 67 exit_code = OutputCapture().assert_outputs(self, two_required_arguments.check_arguments_and_execute, [["foo"], TrivialTool()], expected_stderr=expected_missing_args_error) 71 68 self.assertEqual(exit_code, 1) 72 self.assertEqual(stdout_string, "")73 self.assertEqual(stderr_string, expected_missing_args_error)74 69 75 70 … … 109 104 self.assertEqual(tool.command_by_name("bar"), None) 110 105 111 def _assert_tool_main_outputs(self, tool, main_args, expected_stdout, expected_stderr = "", exit_code=0): 112 capture = OutputCapture() 113 capture.capture_output() 114 exit_code = tool.main(main_args) 115 (stdout_string, stderr_string) = capture.restore_output() 116 self.assertEqual(stdout_string, expected_stdout) 117 self.assertEqual(expected_stderr, expected_stderr) 106 def _assert_tool_main_outputs(self, tool, main_args, expected_stdout, expected_stderr = "", expected_exit_code=0): 107 exit_code = OutputCapture().assert_outputs(self, tool.main, [main_args], expected_stdout=expected_stdout, expected_stderr=expected_stderr) 108 self.assertEqual(exit_code, expected_exit_code) 118 109 119 110 def test_global_help(self): -
trunk/WebKitTools/Scripts/modules/outputcapture.py
r51381 r52239 52 52 def restore_output(self): 53 53 return (self._restore_output_with_name("stdout"), self._restore_output_with_name("stderr")) 54 55 def assert_outputs(self, testcase, function, args=[], kwargs={}, expected_stdout="", expected_stderr=""): 56 self.capture_output() 57 return_value = function(*args, **kwargs) 58 (stdout_string, stderr_string) = self.restore_output() 59 testcase.assertEqual(stdout_string, expected_stdout) 60 testcase.assertEqual(stderr_string, expected_stderr) 61 # This is a little strange, but I don't know where else to return this information. 62 return return_value -
trunk/WebKitTools/Scripts/run-webkit-unittests
r52232 r52239 33 33 from modules.bugzilla_unittest import * 34 34 from modules.buildbot_unittest import * 35 from modules.buildsteps_unittest import * 35 36 from modules.changelogs_unittest import * 36 37 from modules.commands.download_unittest import *
Note: See TracChangeset
for help on using the changeset viewer.