 ;; a test-session is just a spy-session which will initialise it's keyspace
 ;; if necesary and will truncate any used tables when closed
 (defnk create-test-session
-  [{contact-points nil} {port nil} {datacenter nil} {truncate-on-close nil} keyspace :as args]
+  [{contact-points nil}
+   {port nil}
+   {datacenter nil}
+   {truncate-on-close nil}
+   keyspace
+   {trace? nil}
+   :as args]
   (create-spy-session
    (merge
     args

    (let [str-statement (if (string? statement)
                          statement
                          (h/->raw statement))]
      (when *trace*
        (debug str-statement))
      str-statement)
    opts)))

(defn shutdown-session-and-cluster
  [session]

        (s/reset-spy-log spy-session)
        (return true)))))

(defrecord AliaSpySession [keyspace
                           alia-session
                           spy-log-atom
                           truncate-on-close
                           trace?]
  Session
  (execute [this statement]
    (s/execute this statement {}))
  (execute [_ statement opts]
    (swap! spy-log-atom conj statement)
    (execute* alia-session statement (assoc opts :trace? trace?)))
  (execute-buffered [this statement]
    (s/execute-buffered this statement {}))
  (execute-buffered [_ statement opts]
    (swap! spy-log-atom conj statement)
    (execute-buffered* alia-session statement (assoc opts :trace? trace?)))
  (close [self]
    (with-context deferred-context
      (mlet [_ (if truncate-on-close
