Skip to content

Instantly share code, notes, and snippets.

@hmaurer
Created July 26, 2017 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hmaurer/8e786bfd507798393c8be45ffb3a1b46 to your computer and use it in GitHub Desktop.
Save hmaurer/8e786bfd507798393c8be45ffb3a1b46 to your computer and use it in GitHub Desktop.
(defmacro with-scratch-ctx [ctx-binding & body]
"Creates a new execution context, transacts the app's schema and makes
context accessible within the body forms.
After execution of the body forms, deletes database."
`(let [uri# (str "datomic:mem://hello-test-" (UUID/randomUUID))
datomic# (ig/init-key :wef-backend/datomic {:uri uri#})
conn# (:conn datomic#)
~ctx-binding {:conn conn#
:db (d/db conn#)
:auth nil}]
(try ~@body
(finally (d/delete-database uri#)))))
@hmaurer
Copy link
Author

hmaurer commented Jul 26, 2017

#error {
:cause "Can't let qualified name: wef-backend.test-util/conn# "
:via
[{:type clojure.lang.Compiler$CompilerException
:message "java.lang.RuntimeException: Can't let qualified name: wef-backend.test-util/conn# , compiling:(wef_backend/app/identity_test.clj:10:3)"
:at [clojure.lang.Compiler analyzeSeq "Compiler.java" 6875]}
{:type java.lang.RuntimeException
:message "Can't let qualified name: wef-backend.test-util/conn# "
:at [clojure.lang.Util runtimeException "Util.java" 221]}]
:trace
[[clojure.lang.Util runtimeException "Util.java" 221]
[clojure.lang.Compiler$LetExpr$Parser parse "Compiler.java" 6268]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6868]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6856]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6856]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyze "Compiler.java" 6625]
[clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6001]
[clojure.lang.Compiler$FnMethod parse "Compiler.java" 5380]
[clojure.lang.Compiler$FnExpr parse "Compiler.java" 3972]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6866]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6856]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyze "Compiler.java" 6625]
[clojure.lang.Compiler$MapExpr parse "Compiler.java" 3072]
[clojure.lang.Compiler analyze "Compiler.java" 6677]
[clojure.lang.Compiler analyze "Compiler.java" 6625]
[clojure.lang.Compiler$DefExpr$Parser parse "Compiler.java" 588]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6868]
[clojure.lang.Compiler analyze "Compiler.java" 6669]
[clojure.lang.Compiler analyze "Compiler.java" 6625]
[clojure.lang.Compiler eval "Compiler.java" 6931]
[clojure.lang.Compiler load "Compiler.java" 7379]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT loadResourceScript "RT.java" 363]
[clojure.lang.RT load "RT.java" 453]
[clojure.lang.RT load "RT.java" 419]
[clojure.core$load$fn__5677 invoke "core.clj" 5893]
[clojure.core$load invokeStatic "core.clj" 5892]
[clojure.core$load doInvoke "core.clj" 5876]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5697]
[clojure.core$load_one invoke "core.clj" 5692]
[clojure.core$load_lib$fn__5626 invoke "core.clj" 5737]
[clojure.core$load_lib invokeStatic "core.clj" 5736]
[clojure.core$load_lib doInvoke "core.clj" 5717]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 648]
[clojure.core$load_libs invokeStatic "core.clj" 5774]
[clojure.core$load_libs doInvoke "core.clj" 5758]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 648]
[clojure.core$require invokeStatic "core.clj" 5796]
[clojure.core$require doInvoke "core.clj" 5796]
[clojure.lang.RestFn invoke "RestFn.java" 421]
[clojure.tools.namespace.reload$track_reload_one invokeStatic "reload.clj" 35]
[clojure.tools.namespace.reload$track_reload_one invoke "reload.clj" 21]
[clojure.tools.namespace.reload$track_reload invokeStatic "reload.clj" 52]
[clojure.tools.namespace.reload$track_reload invoke "reload.clj" 43]
[clojure.lang.AFn applyToHelper "AFn.java" 154]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.lang.Var alterRoot "Var.java" 303]
[clojure.core$alter_var_root invokeStatic "core.clj" 5299]
[clojure.core$alter_var_root doInvoke "core.clj" 5294]
[clojure.lang.RestFn invoke "RestFn.java" 425]
[clojure.tools.namespace.repl$do_refresh invokeStatic "repl.clj" 94]
[clojure.tools.namespace.repl$do_refresh invoke "repl.clj" 82]
[clojure.tools.namespace.repl$refresh invokeStatic "repl.clj" 142]
[clojure.tools.namespace.repl$refresh doInvoke "repl.clj" 125]
[clojure.lang.RestFn invoke "RestFn.java" 397]
[wef_backend.core$reload_tests invokeStatic "core.clj" 34]
[wef_backend.core$reload_tests invoke "core.clj" 32]
[wef_backend.core$eval16881 invokeStatic "form-init3398170913149383382.clj" 1]
[wef_backend.core$eval16881 invoke "form-init3398170913149383382.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 6927]
[clojure.lang.Compiler eval "Compiler.java" 6890]
[clojure.core$eval invokeStatic "core.clj" 3105]
[clojure.core$eval invoke "core.clj" 3101]
[clojure.main$repl$read_eval_print__7408$fn__7411 invoke "main.clj" 240]
[clojure.main$repl$read_eval_print__7408 invoke "main.clj" 240]
[clojure.main$repl$fn__7417 invoke "main.clj" 258]
[clojure.main$repl invokeStatic "main.clj" 258]
[clojure.main$repl doInvoke "main.clj" 174]
[clojure.lang.RestFn invoke "RestFn.java" 1523]
[clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__12718 invoke "interruptible_eval.clj" 58]
[clojure.lang.AFn applyToHelper "AFn.java" 152]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.core$apply invokeStatic "core.clj" 646]
[clojure.core$with_bindings_STAR_ invokeStatic "core.clj" 1881]
[clojure.core$with_bindings_STAR_ doInvoke "core.clj" 1881]
[clojure.lang.RestFn invoke "RestFn.java" 425]
[clojure.tools.nrepl.middleware.interruptible_eval$evaluate invokeStatic "interruptible_eval.clj" 56]
[clojure.tools.nrepl.middleware.interruptible_eval$evaluate invoke "interruptible_eval.clj" 27]
[clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__12760$fn__12763 invoke "interruptible_eval.clj" 191]
[clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__12755 invoke "interruptible_eval.clj" 159]
[clojure.lang.AFn run "AFn.java" 22]
[java.util.concurrent.ThreadPoolExecutor runWorker "ThreadPoolExecutor.java" 1142]
[java.util.concurrent.ThreadPoolExecutor$Worker run "ThreadPoolExecutor.java" 617]
[java.lang.Thread run "Thread.java" 745]]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment