def fun(): proxy = IRCProxy(Mock(), Mock()) proxy.post("hello") proxy.disconnect()
def ensure_irc_connected(self, irc_delegate): if not self._irc: self._irc = IRCProxy(irc_delegate)
class WebKitPatch(MultiCommandTool): global_options = [ make_option("--dry-run", action="store_true", dest="dry_run", default=False, help="do not touch remote servers"), make_option("--status-host", action="store", dest="status_host", type="string", nargs=1, help="Hostname (e.g. localhost or commit.webkit.org) where status updates should be posted."), make_option("--irc-password", action="store", dest="irc_password", type="string", nargs=1, help="Password to use when communicating via IRC."), ] def __init__(self, path): MultiCommandTool.__init__(self) self._path = path self.wakeup_event = threading.Event() self.bugs = Bugzilla() self.buildbot = BuildBot() self.executive = Executive() self._irc = None self.user = User() self._scm = None self._checkout = None self.status_server = StatusServer() def scm(self): # Lazily initialize SCM to not error-out before command line parsing (or when running non-scm commands). original_cwd = os.path.abspath(".") if not self._scm: self._scm = detect_scm_system(original_cwd) if not self._scm: script_directory = os.path.abspath(sys.path[0]) self._scm = detect_scm_system(script_directory) if self._scm: log("The current directory (%s) is not a WebKit checkout, using %s" % (original_cwd, self._scm.checkout_root)) else: error("FATAL: Failed to determine the SCM system for either %s or %s" % (original_cwd, script_directory)) return self._scm def checkout(self): if not self._checkout: self._checkout = Checkout(self.scm()) return self._checkout def ensure_irc_connected(self, irc_delegate): if not self._irc: self._irc = IRCProxy(irc_delegate) def irc(self): # We don't automatically construct IRCProxy here because constructing # IRCProxy actually connects to IRC. We want clients to explicitly # connect to IRC. return self._irc def path(self): return self._path def command_completed(self): if self._irc: self._irc.disconnect() def should_show_in_main_help(self, command): if not command.show_in_main_help: return False if command.requires_local_commits: return self.scm().supports_local_commits() return True # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well. def handle_global_options(self, options): if options.dry_run: self.scm().dryrun = True self.bugs.dryrun = True if options.status_host: self.status_server.set_host(options.status_host) if options.irc_password: self.irc_password = options.irc_password def should_execute_command(self, command): if command.requires_local_commits and not self.scm().supports_local_commits(): failure_reason = "%s requires local commits using %s in %s." % (command.name, self.scm().display_name(), self.scm().checkout_root) return (False, failure_reason) return (True, None)
class WebKitPatch(MultiCommandTool): global_options = [ make_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="enable all logging"), make_option("--dry-run", action="store_true", dest="dry_run", default=False, help="do not touch remote servers"), make_option("--status-host", action="store", dest="status_host", type="string", help="Hostname (e.g. localhost or commit.webkit.org) where status updates should be posted."), make_option("--bot-id", action="store", dest="bot_id", type="string", help="Identifier for this bot (if multiple bots are running for a queue)"), make_option("--irc-password", action="store", dest="irc_password", type="string", help="Password to use when communicating via IRC."), make_option("--port", action="store", dest="port", default=None, help="Specify a port (e.g., mac, qt, gtk, ...)."), ] def __init__(self, path): MultiCommandTool.__init__(self) self._path = path self.wakeup_event = threading.Event() self.bugs = Bugzilla() self.buildbot = BuildBot() self.executive = Executive() self._irc = None self._port = None self.user = User() self._scm = None self._checkout = None self.status_server = StatusServer() self.codereview = Rietveld(self.executive) self.port_factory = port.factory def scm(self): # Lazily initialize SCM to not error-out before command line parsing (or when running non-scm commands). if not self._scm: self._scm = default_scm() return self._scm def checkout(self): if not self._checkout: self._checkout = Checkout(self.scm()) return self._checkout def port(self): return self._port def ensure_irc_connected(self, irc_delegate): if not self._irc: self._irc = IRCProxy(irc_delegate) def irc(self): # We don't automatically construct IRCProxy here because constructing # IRCProxy actually connects to IRC. We want clients to explicitly # connect to IRC. return self._irc def path(self): return self._path def command_completed(self): if self._irc: self._irc.disconnect() def should_show_in_main_help(self, command): if not command.show_in_main_help: return False if command.requires_local_commits: return self.scm().supports_local_commits() return True # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well. def handle_global_options(self, options): self._options = options if options.dry_run: self.scm().dryrun = True self.bugs.dryrun = True self.codereview.dryrun = True if options.status_host: self.status_server.set_host(options.status_host) if options.bot_id: self.status_server.set_bot_id(options.bot_id) if options.irc_password: self.irc_password = options.irc_password # If options.port is None, we'll get the default port for this platform. self._port = WebKitPort.port(options.port) def should_execute_command(self, command): if command.requires_local_commits and not self.scm().supports_local_commits(): failure_reason = "%s requires local commits using %s in %s." % (command.name, self.scm().display_name(), self.scm().checkout_root) return (False, failure_reason) return (True, None)
class WebKitPatch(MultiCommandTool): global_options = [ make_option("--dry-run", action="store_true", dest="dry_run", default=False, help="do not touch remote servers"), make_option( "--status-host", action="store", dest="status_host", type="string", nargs=1, help= "Hostname (e.g. localhost or commit.webkit.org) where status updates should be posted." ), make_option("--irc-password", action="store", dest="irc_password", type="string", nargs=1, help="Password to use when communicating via IRC."), ] def __init__(self, path): MultiCommandTool.__init__(self) self._path = path self.wakeup_event = threading.Event() self.bugs = Bugzilla() self.buildbot = BuildBot() self.executive = Executive() self._irc = None self.user = User() self._scm = None self._checkout = None self.status_server = StatusServer() self.codereview = Rietveld(self.executive) def scm(self): # Lazily initialize SCM to not error-out before command line parsing (or when running non-scm commands). original_cwd = os.path.abspath(".") if not self._scm: self._scm = detect_scm_system(original_cwd) if not self._scm: script_directory = os.path.abspath(sys.path[0]) self._scm = detect_scm_system(script_directory) if self._scm: log("The current directory (%s) is not a WebKit checkout, using %s" % (original_cwd, self._scm.checkout_root)) else: error( "FATAL: Failed to determine the SCM system for either %s or %s" % (original_cwd, script_directory)) return self._scm def checkout(self): if not self._checkout: self._checkout = Checkout(self.scm()) return self._checkout def ensure_irc_connected(self, irc_delegate): if not self._irc: self._irc = IRCProxy(irc_delegate) def irc(self): # We don't automatically construct IRCProxy here because constructing # IRCProxy actually connects to IRC. We want clients to explicitly # connect to IRC. return self._irc def path(self): return self._path def command_completed(self): if self._irc: self._irc.disconnect() def should_show_in_main_help(self, command): if not command.show_in_main_help: return False if command.requires_local_commits: return self.scm().supports_local_commits() return True # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well. def handle_global_options(self, options): self._options = options if options.dry_run: self.scm().dryrun = True self.bugs.dryrun = True self.codereview.dryrun = True if options.status_host: self.status_server.set_host(options.status_host) if options.irc_password: self.irc_password = options.irc_password def should_execute_command(self, command): if command.requires_local_commits and not self.scm( ).supports_local_commits(): failure_reason = "%s requires local commits using %s in %s." % ( command.name, self.scm().display_name(), self.scm().checkout_root) return (False, failure_reason) return (True, None)