def main(): parser = OptionParser(usage=USAGE, formatter=WrappedIndentedHelpFormatter()) parser.add_option("--register", action='store_true', help=_("launches the registration dialog on startup")) options, args = parser.parse_args(args=sys.argv) log = logging.getLogger("rhsm-app.subscription-manager-gui") try: bus = dbus.SessionBus() except dbus.exceptions.DBusException as e: log.debug("Enabled to connect to dbus SessionBus") log.exception(e) # Just ignore it if for some reason we can't find the session bus bus = None if already_running(bus): # Attempt to raise the running instance to the forefront try: remote_object = bus.get_object(BUS_NAME, BUS_PATH) remote_object.show_window(dbus_interface=BUS_NAME) log.debug( "subscription-manager-gui already running, showing main window" ) except dbus.exceptions.DBusException as e: log.debug("Error attempting to show main window via dbus") log.debug("dbus remote_object with no show_window: %s" % remote_object) log.debug(e) # failed to raise the window, maybe we raced dbus? # fallback to opening a new window else: # we raised the existing window, we are done sys.exit() try: main = managergui.MainWindow(auto_launch_registration=options.register) # Hook into dbus service - only if it is available if bus: SubscriptionManagerService(main.main_window) # Exit the gtk loop when the window is closed main.main_window.connect('hide', ga_Gtk.main_quit) sys.exit(ga_Gtk.main() or 0) except SystemExit as e: # this is a non-exceptional exception thrown by Python 2.4, just # re-raise, bypassing handle_exception raise e except KeyboardInterrupt: system_exit(0, "\nUser interrupted process.") except Exception as e: log.exception(e) system_exit(1, e)
def main(): parser = OptionParser(usage=USAGE, formatter=WrappedIndentedHelpFormatter()) parser.add_option("--register", action='store_true', help=_("launches the registration dialog on startup")) options, args = parser.parse_args(args=sys.argv) log = logging.getLogger("rhsm-app.subscription-manager-gui") try: bus = dbus.SessionBus() except dbus.exceptions.DBusException as e: log.debug("Enabled to connect to dbus SessionBus") log.exception(e) # Just ignore it if for some reason we can't find the session bus bus = None if already_running(bus): # Attempt to raise the running instance to the forefront try: remote_object = bus.get_object(BUS_NAME, BUS_PATH) remote_object.show_window(dbus_interface=BUS_NAME) log.debug("subscription-manager-gui already running, showing main window") except dbus.exceptions.DBusException as e: log.debug("Error attempting to show main window via dbus") log.debug("dbus remote_object with no show_window: %s" % remote_object) log.debug(e) # failed to raise the window, maybe we raced dbus? # fallback to opening a new window else: # we raised the existing window, we are done sys.exit() try: main = managergui.MainWindow(auto_launch_registration=options.register) # Hook into dbus service - only if it is available if bus: SubscriptionManagerService(main.main_window) # Exit the gtk loop when the window is closed main.main_window.connect('hide', ga_Gtk.main_quit) sys.exit(ga_Gtk.main() or 0) except SystemExit as e: # this is a non-exceptional exception thrown by Python 2.4, just # re-raise, bypassing handle_exception raise e except KeyboardInterrupt: system_exit(0, "\nUser interrupted process.") except Exception as e: log.exception(e) system_exit(1, e)
def test_registration_error_returns_to_page(self): self.rs.initialize() self.correct_page = None self.rs.register_notebook.connect('notify::page', self.page_notify_handler) self.rs.connect('register-error', self.error_handler) ga_GObject.timeout_add(3000, self.gtk_quit_on_fail) ga_GObject.idle_add(self.emit_proceed) ga_GObject.idle_add(self.emit_error) # run till quit or timeout # if we get to the state we want we can call quit ga_Gtk.main() # If we saw any exceptions, raise them now so we fail nosetests for exc_info in self.exc_infos: raise exc_info[1], None, exc_info[2] self.assertTrue(self.correct_page)
def test_registration_error_returns_to_page(self): self.rs.initialize() self.correct_page = None self.rs.register_notebook.connect('notify::page', self.page_notify_handler) self.rs.connect('register-error', self.error_handler) ga_GObject.timeout_add(3000, self.gtk_quit_on_fail) ga_GObject.idle_add(self.emit_proceed) ga_GObject.idle_add(self.emit_error) # run till quit or timeout # if we get to the state we want we can call quit ga_Gtk.main() # If we saw any exceptions, raise them now so we fail nosetests for exc_info in self.exc_infos: six.reraise(*exc_info) self.assertTrue(self.correct_page)