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 'ert)
(require 'webpaste) (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 () (ert-deftest callback-from-working-provider ()
"This test just sends a message to a good provider that just works." "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") :type '(alist :key-type (string :tag "provider name")
:value-type (sexp :tag "webpaste-provider macro definition for the provider"))) :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 ;;;###autoload
(defun webpaste-return-url (returned-url) (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 When we run out of providers to try, it will restart since
webpaste-tested-providers will be empty and then populated again." 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 ;; Populate tested providers for this request if needed
(if (eq webpaste-tested-providers nil) (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 ;; Get name of provider at the top of the list
(let ((provider-name (car webpaste-tested-providers))) (let ((provider-name (car webpaste-tested-providers)))

Loading…
Cancel
Save