| OLD | NEW |
| 1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 def check_running_pid(self, pid): | 78 def check_running_pid(self, pid): |
| 79 return pid in self._running_pids.values() | 79 return pid in self._running_pids.values() |
| 80 | 80 |
| 81 def running_pids(self, process_name_filter): | 81 def running_pids(self, process_name_filter): |
| 82 running_pids = [] | 82 running_pids = [] |
| 83 for process_name, process_pid in self._running_pids.iteritems(): | 83 for process_name, process_pid in self._running_pids.iteritems(): |
| 84 if process_name_filter(process_name): | 84 if process_name_filter(process_name): |
| 85 running_pids.append(process_pid) | 85 running_pids.append(process_pid) |
| 86 | 86 |
| 87 _log.info("MOCK running_pids: %s" % running_pids) | 87 _log.info("MOCK running_pids: %s", running_pids) |
| 88 return running_pids | 88 return running_pids |
| 89 | 89 |
| 90 def command_for_printing(self, args): | 90 def command_for_printing(self, args): |
| 91 string_args = map(unicode, args) | 91 string_args = map(unicode, args) |
| 92 return " ".join(string_args) | 92 return " ".join(string_args) |
| 93 | 93 |
| 94 def run_command(self, | 94 def run_command(self, |
| 95 args, | 95 args, |
| 96 cwd=None, | 96 cwd=None, |
| 97 input=None, | 97 input=None, |
| 98 error_handler=None, | 98 error_handler=None, |
| 99 return_exit_code=False, | 99 return_exit_code=False, |
| 100 return_stderr=True, | 100 return_stderr=True, |
| 101 decode_output=False, | 101 decode_output=False, |
| 102 env=None, | 102 env=None, |
| 103 debug_logging=False): | 103 debug_logging=False): |
| 104 | 104 |
| 105 self.calls.append(args) | 105 self.calls.append(args) |
| 106 | 106 |
| 107 assert isinstance(args, list) or isinstance(args, tuple) | 107 assert isinstance(args, list) or isinstance(args, tuple) |
| 108 if self._should_log: | 108 if self._should_log: |
| 109 env_string = "" | 109 env_string = "" |
| 110 if env: | 110 if env: |
| 111 env_string = ", env=%s" % env | 111 env_string = ", env=%s" % env |
| 112 input_string = "" | 112 input_string = "" |
| 113 if input: | 113 if input: |
| 114 input_string = ", input=%s" % input | 114 input_string = ", input=%s" % input |
| 115 _log.info("MOCK run_command: %s, cwd=%s%s%s" % (args, cwd, env_strin
g, input_string)) | 115 _log.info("MOCK run_command: %s, cwd=%s%s%s", args, cwd, env_string,
input_string) |
| 116 output = "MOCK output of child process" | 116 output = "MOCK output of child process" |
| 117 | 117 |
| 118 if self._should_throw_when_run.intersection(args): | 118 if self._should_throw_when_run.intersection(args): |
| 119 raise ScriptError("Exception for %s" % args, output="MOCK command ou
tput") | 119 raise ScriptError("Exception for %s" % args, output="MOCK command ou
tput") |
| 120 | 120 |
| 121 if self._should_throw: | 121 if self._should_throw: |
| 122 raise ScriptError("MOCK ScriptError", output=output) | 122 raise ScriptError("MOCK ScriptError", output=output) |
| 123 | 123 |
| 124 if return_exit_code and self._should_return_zero_when_run.intersection(a
rgs): | 124 if return_exit_code and self._should_return_zero_when_run.intersection(a
rgs): |
| 125 return 0 | 125 return 0 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 137 | 137 |
| 138 def popen(self, args, cwd=None, env=None, **kwargs): | 138 def popen(self, args, cwd=None, env=None, **kwargs): |
| 139 self.calls.append(args) | 139 self.calls.append(args) |
| 140 if self._should_log: | 140 if self._should_log: |
| 141 cwd_string = "" | 141 cwd_string = "" |
| 142 if cwd: | 142 if cwd: |
| 143 cwd_string = ", cwd=%s" % cwd | 143 cwd_string = ", cwd=%s" % cwd |
| 144 env_string = "" | 144 env_string = "" |
| 145 if env: | 145 if env: |
| 146 env_string = ", env=%s" % env | 146 env_string = ", env=%s" % env |
| 147 _log.info("MOCK popen: %s%s%s" % (args, cwd_string, env_string)) | 147 _log.info("MOCK popen: %s%s%s", args, cwd_string, env_string) |
| 148 if not self._proc: | 148 if not self._proc: |
| 149 self._proc = MockProcess() | 149 self._proc = MockProcess() |
| 150 return self._proc | 150 return self._proc |
| 151 | 151 |
| 152 def call(self, args, **kwargs): | 152 def call(self, args, **kwargs): |
| 153 self.calls.append(args) | 153 self.calls.append(args) |
| 154 _log.info('Mock call: %s' % args) | 154 _log.info('Mock call: %s', args) |
| 155 | 155 |
| 156 def run_in_parallel(self, commands): | 156 def run_in_parallel(self, commands): |
| 157 assert len(commands) | 157 assert len(commands) |
| 158 | 158 |
| 159 num_previous_calls = len(self.calls) | 159 num_previous_calls = len(self.calls) |
| 160 command_outputs = [] | 160 command_outputs = [] |
| 161 for cmd_line, cwd in commands: | 161 for cmd_line, cwd in commands: |
| 162 command_outputs.append([0, self.run_command(cmd_line, cwd=cwd), '']) | 162 command_outputs.append([0, self.run_command(cmd_line, cwd=cwd), '']) |
| 163 | 163 |
| 164 new_calls = self.calls[num_previous_calls:] | 164 new_calls = self.calls[num_previous_calls:] |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 if self._run_command_fn: | 201 if self._run_command_fn: |
| 202 return self._run_command_fn(args) | 202 return self._run_command_fn(args) |
| 203 if return_exit_code: | 203 if return_exit_code: |
| 204 return self._exit_code | 204 return self._exit_code |
| 205 if self._exit_code and error_handler: | 205 if self._exit_code and error_handler: |
| 206 script_error = ScriptError(script_args=args, exit_code=self._exit_co
de, output=self._output) | 206 script_error = ScriptError(script_args=args, exit_code=self._exit_co
de, output=self._output) |
| 207 error_handler(script_error) | 207 error_handler(script_error) |
| 208 if return_stderr: | 208 if return_stderr: |
| 209 return self._output + self._stderr | 209 return self._output + self._stderr |
| 210 return self._output | 210 return self._output |
| OLD | NEW |