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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/tool/multicommandtool_unittest.py

Issue 1839193004: Run auto-formatter (autopep8) on webkitpy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 # Copyright (c) 2009 Google Inc. All rights reserved. 1 # Copyright (c) 2009 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 20 matching lines...) Expand all
31 31
32 from optparse import make_option 32 from optparse import make_option
33 33
34 from webkitpy.common.system.outputcapture import OutputCapture 34 from webkitpy.common.system.outputcapture import OutputCapture
35 from webkitpy.tool.multicommandtool import MultiCommandTool, Command, TryAgain 35 from webkitpy.tool.multicommandtool import MultiCommandTool, Command, TryAgain
36 36
37 37
38 class TrivialCommand(Command): 38 class TrivialCommand(Command):
39 name = "trivial" 39 name = "trivial"
40 show_in_main_help = True 40 show_in_main_help = True
41
41 def __init__(self, **kwargs): 42 def __init__(self, **kwargs):
42 Command.__init__(self, "help text", **kwargs) 43 Command.__init__(self, "help text", **kwargs)
43 44
44 def execute(self, options, args, tool): 45 def execute(self, options, args, tool):
45 pass 46 pass
46 47
47 48
48 class UncommonCommand(TrivialCommand): 49 class UncommonCommand(TrivialCommand):
49 name = "uncommon" 50 name = "uncommon"
50 show_in_main_help = False 51 show_in_main_help = False
51 52
52 53
53 class LikesToRetry(Command): 54 class LikesToRetry(Command):
54 name = "likes-to-retry" 55 name = "likes-to-retry"
55 show_in_main_help = True 56 show_in_main_help = True
56 57
57 def __init__(self, **kwargs): 58 def __init__(self, **kwargs):
58 Command.__init__(self, "help text", **kwargs) 59 Command.__init__(self, "help text", **kwargs)
59 self.execute_count = 0 60 self.execute_count = 0
60 61
61 def execute(self, options, args, tool): 62 def execute(self, options, args, tool):
62 self.execute_count += 1 63 self.execute_count += 1
63 if self.execute_count < 2: 64 if self.execute_count < 2:
64 raise TryAgain() 65 raise TryAgain()
65 66
66 67
67 class CommandTest(unittest.TestCase): 68 class CommandTest(unittest.TestCase):
69
68 def test_name_with_arguments(self): 70 def test_name_with_arguments(self):
69 command_with_args = TrivialCommand(argument_names="ARG1 ARG2") 71 command_with_args = TrivialCommand(argument_names="ARG1 ARG2")
70 self.assertEqual(command_with_args.name_with_arguments(), "trivial ARG1 ARG2") 72 self.assertEqual(command_with_args.name_with_arguments(), "trivial ARG1 ARG2")
71 73
72 command_with_args = TrivialCommand(options=[make_option("--my_option")]) 74 command_with_args = TrivialCommand(options=[make_option("--my_option")])
73 self.assertEqual(command_with_args.name_with_arguments(), "trivial [opti ons]") 75 self.assertEqual(command_with_args.name_with_arguments(), "trivial [opti ons]")
74 76
75 def test_parse_required_arguments(self): 77 def test_parse_required_arguments(self):
76 self.assertEqual(Command._parse_required_arguments("ARG1 ARG2"), ["ARG1" , "ARG2"]) 78 self.assertEqual(Command._parse_required_arguments("ARG1 ARG2"), ["ARG1" , "ARG2"])
77 self.assertEqual(Command._parse_required_arguments("[ARG1] [ARG2]"), []) 79 self.assertEqual(Command._parse_required_arguments("[ARG1] [ARG2]"), [])
78 self.assertEqual(Command._parse_required_arguments("[ARG1] ARG2"), ["ARG 2"]) 80 self.assertEqual(Command._parse_required_arguments("[ARG1] ARG2"), ["ARG 2"])
79 # Note: We might make our arg parsing smarter in the future and allow th is type of arguments string. 81 # Note: We might make our arg parsing smarter in the future and allow th is type of arguments string.
80 self.assertRaises(Exception, Command._parse_required_arguments, "[ARG1 A RG2]") 82 self.assertRaises(Exception, Command._parse_required_arguments, "[ARG1 A RG2]")
81 83
82 def test_required_arguments(self): 84 def test_required_arguments(self):
83 two_required_arguments = TrivialCommand(argument_names="ARG1 ARG2 [ARG3] ") 85 two_required_arguments = TrivialCommand(argument_names="ARG1 ARG2 [ARG3] ")
84 expected_logs = "2 arguments required, 1 argument provided. Provided: ' foo' Required: ARG1 ARG2\nSee 'trivial-tool help trivial' for usage.\n" 86 expected_logs = "2 arguments required, 1 argument provided. Provided: ' foo' Required: ARG1 ARG2\nSee 'trivial-tool help trivial' for usage.\n"
85 exit_code = OutputCapture().assert_outputs(self, two_required_arguments. check_arguments_and_execute, [None, ["foo"], TrivialTool()], expected_logs=expec ted_logs) 87 exit_code = OutputCapture().assert_outputs(self, two_required_arguments. check_arguments_and_execute,
88 [None, ["foo"], TrivialTool() ], expected_logs=expected_logs)
86 self.assertEqual(exit_code, 1) 89 self.assertEqual(exit_code, 1)
87 90
88 91
89 class TrivialTool(MultiCommandTool): 92 class TrivialTool(MultiCommandTool):
93
90 def __init__(self, commands=None): 94 def __init__(self, commands=None):
91 MultiCommandTool.__init__(self, name="trivial-tool", commands=commands) 95 MultiCommandTool.__init__(self, name="trivial-tool", commands=commands)
92 96
93 def path(self): 97 def path(self):
94 return __file__ 98 return __file__
95 99
96 def should_execute_command(self, command): 100 def should_execute_command(self, command):
97 return (True, None) 101 return (True, None)
98 102
99 103
100 class MultiCommandToolTest(unittest.TestCase): 104 class MultiCommandToolTest(unittest.TestCase):
105
101 def _assert_split(self, args, expected_split): 106 def _assert_split(self, args, expected_split):
102 self.assertEqual(MultiCommandTool._split_command_name_from_args(args), e xpected_split) 107 self.assertEqual(MultiCommandTool._split_command_name_from_args(args), e xpected_split)
103 108
104 def test_split_args(self): 109 def test_split_args(self):
105 # MultiCommandToolTest._split_command_name_from_args returns: (command, args) 110 # MultiCommandToolTest._split_command_name_from_args returns: (command, args)
106 full_args = ["--global-option", "command", "--option", "arg"] 111 full_args = ["--global-option", "command", "--option", "arg"]
107 full_args_expected = ("command", ["--global-option", "--option", "arg"]) 112 full_args_expected = ("command", ["--global-option", "--option", "arg"])
108 self._assert_split(full_args, full_args_expected) 113 self._assert_split(full_args, full_args_expected)
109 114
110 full_args = [] 115 full_args = []
111 full_args_expected = (None, []) 116 full_args_expected = (None, [])
112 self._assert_split(full_args, full_args_expected) 117 self._assert_split(full_args, full_args_expected)
113 118
114 full_args = ["command", "arg"] 119 full_args = ["command", "arg"]
115 full_args_expected = ("command", ["arg"]) 120 full_args_expected = ("command", ["arg"])
116 self._assert_split(full_args, full_args_expected) 121 self._assert_split(full_args, full_args_expected)
117 122
118 def test_command_by_name(self): 123 def test_command_by_name(self):
119 # This also tests Command auto-discovery. 124 # This also tests Command auto-discovery.
120 tool = TrivialTool() 125 tool = TrivialTool()
121 self.assertEqual(tool.command_by_name("trivial").name, "trivial") 126 self.assertEqual(tool.command_by_name("trivial").name, "trivial")
122 self.assertEqual(tool.command_by_name("bar"), None) 127 self.assertEqual(tool.command_by_name("bar"), None)
123 128
124 def _assert_tool_main_outputs(self, tool, main_args, expected_stdout, expect ed_stderr = "", expected_exit_code=0): 129 def _assert_tool_main_outputs(self, tool, main_args, expected_stdout, expect ed_stderr="", expected_exit_code=0):
125 exit_code = OutputCapture().assert_outputs(self, tool.main, [main_args], expected_stdout=expected_stdout, expected_stderr=expected_stderr) 130 exit_code = OutputCapture().assert_outputs(
131 self, tool.main, [main_args], expected_stdout=expected_stdout, expec ted_stderr=expected_stderr)
126 self.assertEqual(exit_code, expected_exit_code) 132 self.assertEqual(exit_code, expected_exit_code)
127 133
128 def test_retry(self): 134 def test_retry(self):
129 likes_to_retry = LikesToRetry() 135 likes_to_retry = LikesToRetry()
130 tool = TrivialTool(commands=[likes_to_retry]) 136 tool = TrivialTool(commands=[likes_to_retry])
131 tool.main(["tool", "likes-to-retry"]) 137 tool.main(["tool", "likes-to-retry"])
132 self.assertEqual(likes_to_retry.execute_count, 2) 138 self.assertEqual(likes_to_retry.execute_count, 2)
133 139
134 def test_global_help(self): 140 def test_global_help(self):
135 tool = TrivialTool(commands=[TrivialCommand(), UncommonCommand()]) 141 tool = TrivialTool(commands=[TrivialCommand(), UncommonCommand()])
(...skipping 22 matching lines...) Expand all
158 uncommon help text 164 uncommon help text
159 165
160 See 'trivial-tool help --all-commands' to list all commands. 166 See 'trivial-tool help --all-commands' to list all commands.
161 See 'trivial-tool help COMMAND' for more information on a specific command. 167 See 'trivial-tool help COMMAND' for more information on a specific command.
162 168
163 """ 169 """
164 self._assert_tool_main_outputs(tool, ["tool", "help", "--all-commands"], expected_all_commands_help) 170 self._assert_tool_main_outputs(tool, ["tool", "help", "--all-commands"], expected_all_commands_help)
165 # Test that arguments can be passed before commands as well 171 # Test that arguments can be passed before commands as well
166 self._assert_tool_main_outputs(tool, ["tool", "--all-commands", "help"], expected_all_commands_help) 172 self._assert_tool_main_outputs(tool, ["tool", "--all-commands", "help"], expected_all_commands_help)
167 173
168
169 def test_command_help(self): 174 def test_command_help(self):
170 command_with_options = TrivialCommand(options=[make_option("--my_option" )], long_help="LONG HELP") 175 command_with_options = TrivialCommand(options=[make_option("--my_option" )], long_help="LONG HELP")
171 tool = TrivialTool(commands=[command_with_options]) 176 tool = TrivialTool(commands=[command_with_options])
172 expected_subcommand_help = "trivial [options] help text\n\nLONG HELP\n \nOptions:\n --my_option=MY_OPTION\n\n" 177 expected_subcommand_help = "trivial [options] help text\n\nLONG HELP\n \nOptions:\n --my_option=MY_OPTION\n\n"
173 self._assert_tool_main_outputs(tool, ["tool", "help", "trivial"], expect ed_subcommand_help) 178 self._assert_tool_main_outputs(tool, ["tool", "help", "trivial"], expect ed_subcommand_help)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698