diff options
Diffstat (limited to 'src/clojure/contrib/test_contrib/with_ns_test.clj')
-rw-r--r-- | src/clojure/contrib/test_contrib/with_ns_test.clj | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/clojure/contrib/test_contrib/with_ns_test.clj b/src/clojure/contrib/test_contrib/with_ns_test.clj new file mode 100644 index 00000000..09137bc0 --- /dev/null +++ b/src/clojure/contrib/test_contrib/with_ns_test.clj @@ -0,0 +1,19 @@ +(ns clojure.contrib.test-contrib.with-ns-test + (:use clojure.test + clojure.contrib.with-ns + [clojure.contrib.seq-utils :only (includes?)])) + +(deftest test-namespace-gets-removed + (let [all-ns-names (fn [] (map #(.name %) (all-ns)))] + (testing "unexceptional return" + (let [ns-name (with-temp-ns (ns-name *ns*))] + (is (not (includes? (all-ns-names) ns-name))))) + (testing "when an exception is thrown" + (let [ns-name-str + (try + (with-temp-ns + (throw (RuntimeException. (str (ns-name *ns*))))) + (catch clojure.lang.Compiler$CompilerException e + (-> e .getCause .getMessage)))] + (is (re-find #"^sym.*$" ns-name-str)) + (is (not (includes? (all-ns-names) (symbol ns-name-str)))))))) |