Skip to content

Instantly share code, notes, and snippets.

@weissjeffm
Created December 20, 2010 21:39
Show Gist options
  • Save weissjeffm/749039 to your computer and use it in GitHub Desktop.
Save weissjeffm/749039 to your computer and use it in GitHub Desktop.
demo of error handling
;; in the task class
(defn register [username password & {:keys [system-name-input, autosubscribe]
:or {system-name-input nil, autosubscribe false}}]
(if (ui exists? :unregister-system)
(raise {:type :already-registered
:username username
:password password
:unregister-first (fn [] (unregister)
(register (:username *error*) (:password *error*)))}))
(ui click :register-system)
(ui waittillguiexist :redhat-login)
(ui settextvalue :redhat-login username)
(ui settextvalue :password password)
(when system-name-input
(ui settextvalue :system-name system-name-input))
(add-recoveries {:cancel #(ui click :register-cancel)}
(ui click :register)
(checkforerror)))
;; in the test
(defn ^{BeforeClass {}} mybefore [_]
(with-handlers [(handle-type :already-registered [e]
(recover-by :unregister-first))]
(sm.gui.tasks/register (@config :username) (@config :password))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment