Refactor provider priority to own function

master
Elis Axelsson 9 years ago
parent 6655ecc50a
commit e11ce74a8c
No known key found for this signature in database
GPG Key ID: D57EFA625C9A925F
  1. 12
      test/webpaste-test.el
  2. 26
      webpaste.el

@ -4,6 +4,18 @@
(require 'ert)
(require 'webpaste)
(ert-deftest webpaste-autopupulate-provider-priority ()
"Test autopopulate of webpaste-provider-priority."
(setq-default webpaste-provider-priority nil)
(setq-default webpaste-providers-alist
(list (list "provider1" "lamba")
(list "provider2" "lamba")
(list "provider3" "lamba")))
(should (equal (webpaste--get-provider-priority)
'("provider1" "provider2" "provider3"))))
(ert-deftest callback-from-working-provider ()
"This test just sends a message to a good provider that just works."

@ -156,6 +156,20 @@ return it to the user."
:type '(alist :key-type (string :tag "provider name")
:value-type (sexp :tag "webpaste-provider macro definition for the provider")))
(defun webpaste--get-provider-priority ()
"Return provider priority."
;; Populate webpaste-provider-priority if needed
(if (eq webpaste-provider-priority nil)
(let ((provider-names))
;; Loop provider list
(dolist (provider webpaste-providers-alist)
(cl-pushnew (car provider) provider-names))
;; Set names list
(setq-default webpaste-provider-priority (reverse provider-names))))
webpaste-provider-priority)
;;;###autoload
(defun webpaste-return-url (returned-url)
@ -188,19 +202,9 @@ might call this function again with TEXT as param to retry if it failed.
When we run out of providers to try, it will restart since
webpaste-tested-providers will be empty and then populated again."
;; Populate webpaste-provider-priority if needed
(if (eq webpaste-provider-priority nil)
(let ((provider-names))
;; Loop provider list
(dolist (provider webpaste-providers-alist)
(cl-pushnew (car provider) provider-names))
;; Set names list
(setq-default webpaste-provider-priority (reverse provider-names))))
;; Populate tested providers for this request if needed
(if (eq webpaste-tested-providers nil)
(setq webpaste-tested-providers webpaste-provider-priority))
(setq webpaste-tested-providers (webpaste--get-provider-priority)))
;; Get name of provider at the top of the list
(let ((provider-name (car webpaste-tested-providers)))

Loading…
Cancel
Save