From 18c389303878d1dcc8fe440b8ecf233748b7f6f9 Mon Sep 17 00:00:00 2001
From: Cam Saul <cam@geotip.com>
Date: Tue, 7 Jul 2015 16:46:27 -0700
Subject: [PATCH] test fix

---
 src/metabase/models/interface.clj | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/metabase/models/interface.clj b/src/metabase/models/interface.clj
index 37fe451cf5e..ac46ee92c83 100644
--- a/src/metabase/models/interface.clj
+++ b/src/metabase/models/interface.clj
@@ -102,7 +102,6 @@
 
 (defn- identity-second [_ obj] obj)
 (def ^:private constantly-nil (constantly nil))
-(def ^:private constantly-true (constantly true))
 
 (def ^:const ^:private default-entity-method-implementations
   {:pre-insert         #'identity-second
@@ -184,7 +183,8 @@
   {:pre [(vector? entity-forms)]}
   (let [entity-symb               (symbol (format "%sEntity" (name entity)))
         internal-post-select-symb (symbol (format "internal-post-select-%s" (name entity)))
-        entity-map                (eval `(macrolet-entity-map ~entity ~@entity-forms))
+        unevaled-entity-map       (macroexpand-all `(macrolet-entity-map ~entity ~@entity-forms))
+        entity-map                (eval unevaled-entity-map)
         [methods specs]           (split-with list? methods+specs)]
     `(do
        (defrecord ~entity-symb []
@@ -197,11 +197,13 @@
        (extend ~entity-symb
          IEntity ~(merge default-entity-method-implementations
                          {:internal-pre-insert  `(fn [~'_ obj#]
-                                                   (-> (apply-type-fns obj# :in ~entity-map)
+                                                   (-> obj#
+                                                       (apply-type-fns :in ~entity-map)
                                                        ~@(when (::timestamped entity-map)
                                                            [update-created-at-updated-at])))
                           :internal-pre-update  `(fn [~'_ obj#]
-                                                   (-> (apply-type-fns obj# :in ~entity-map)
+                                                   (-> obj#
+                                                       (apply-type-fns :in ~entity-map)
                                                        ~@(when (::timestamped entity-map)
                                                            [update-updated-at])))
                           :internal-post-select `(fn [~'_ obj#]
@@ -210,7 +212,7 @@
                                (for [[method-name & impl] methods]
                                  {(keyword method-name) `(fn ~@impl)}))))
        (def ~entity
-         (~(symbol (format "map->%sEntity" (name entity))) ~(assoc entity-map ::entity true))))))
+         (~(symbol (format "map->%sEntity" (name entity))) (assoc ~unevaled-entity-map ::entity true))))))
 
 (defn metabase-entity?
   "Is ENTITY a valid metabase model entity?"
-- 
GitLab