 (ns com.stuartsierra.lazytest
   (:use [com.stuartsierra.lazytest.arguments :only (get-arg get-options seconds
-						    standard-metadata or-nil)]
+						    standard-metadata or-nil
+						    firsts)]
         [com.stuartsierra.lazytest.groups :only (new-group group?)]
+        [com.stuartsierra.lazytest.contexts :only (new-context context?)]
         [com.stuartsierra.lazytest.attach :only (add-group all-groups)]
         [com.stuartsierra.lazytest.plan :only (flat-plan)]
 	[com.stuartsierra.lazytest.run :only (run)]))

  (vec (sort-by #(::order (meta %))
                (filter #(::local (meta %)) (keys env)))))

(defmacro describe [& args]
  (let [[sym args] (get-arg symbol? args)
	[doc args] (get-arg string? args)

(defn run-tests [& args]
  (run (apply flat-plan (all-groups) args)))

(defn clear-tests "Delete all tests in the current namespace"
  []
  (intern *ns* (with-meta '*lazytest-groups* {:private true}) #{}))

(defmacro thrown?
  "Returns true if body throws an instance of class c."
  [c & body]
