-;; ; next line only for people with non-eco non-global test runners
-;; ; (add-to-list 'nose-project-names "my/crazy/runner")
-;; Note that if your global nose isn't called "nosetests", then you'll want to
-;; redefine nose-global-name to be the command that should be used.
-;; By default, the root of a project is found by looking for any of the files
-;; 'setup.py', '.hg' and '.git'. You can add files to check for to the file
-;; ; (add-to-list 'nose-project-root-files "something")
-;; or you can change the project root test to detect in some other way
-;; whether a directory is the project root:
-;; ; (setq nose-project-root-test (lambda (dirname) (equal dirname "foo")))
-;; If you want dots as output, rather than the verbose output:
-;; (defvar nose-use-verbose nil) ; default is t
+;; Run `customize-group nose' to configure.
;; Probably also want some keybindings:
;; (add-hook 'python-mode-hook
(require 'cl) ;; for "reduce"
-(defvar nose-project-names '("eco/bin/test"))
-(defvar nose-project-root-files '("setup.py" ".hg" ".git"))
-(defvar nose-project-root-test 'nose-project-root)
-(defvar nose-global-name "nosetests")
-(defvar nose-use-verbose t)
+ "A tool for Python unit testing."
+(defcustom nose-project-names nil
+ "Location of non-global test runners."
+ :type '(repeat directory)
+(defcustom nose-project-root-files '("setup.py" ".hg" ".git")
+ "The presence of one of these files indicates the project root directory.
+You may choose to use a custom function instead by setting
+(defcustom nose-project-root-test 'nose-project-root
+ "This function is used to detect the project root.
+It can be a lambda expression. For example:
+ '(lambda (dirname) (equal dirname \"foo\"))"
+(defcustom nose-global-name "nosetests"
+ "Name of the nose shell command."
+(defcustom nose-use-verbose t
+ "Only dots will be output if this variable is nil."
(defun run-nose (&optional tests debug failed)