From e055e0e1c2cf8c4cfff23fdd1acb2d742316a4fe Mon Sep 17 00:00:00 2001
From: Cal Herries <39073188+calherries@users.noreply.github.com>
Date: Mon, 12 Dec 2022 15:03:32 +0200
Subject: [PATCH] Update normal-drivers-with-feature to use driver test db
 (#27112)

* Update normal-drivers-with-feature to use driver test db, not just the current test db

* Exclude failing mongo test

* Improve perf
---
 test/metabase/query_processor_test.clj                       | 5 +++--
 .../query_processor_test/date_time_zone_functions_test.clj   | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/test/metabase/query_processor_test.clj b/test/metabase/query_processor_test.clj
index 64a2cc63156..cd4b793e944 100644
--- a/test/metabase/query_processor_test.clj
+++ b/test/metabase/query_processor_test.clj
@@ -8,7 +8,6 @@
             [medley.core :as m]
             [metabase.db.connection :as mdb.connection]
             [metabase.driver :as driver]
-            [metabase.driver.util :as driver.u]
             [metabase.models.field :refer [Field]]
             [metabase.models.table :refer [Table]]
             [metabase.query-processor :as qp]
@@ -45,7 +44,9 @@
   (let [features (set (cons feature more-features))]
     (set (for [driver (normal-drivers)
                :let   [driver (tx/the-driver-with-test-extensions driver)]
-               :when  (set/subset? features (driver.u/features driver (data/db)))]
+               :when  (driver/with-driver driver
+                        (let [db (data/db)]
+                          (every? #(driver/database-supports? driver % db) features)))]
            driver))))
 
 (alter-meta! #'normal-drivers-with-feature assoc :arglists (list (into ['&] (sort driver/driver-features))))
diff --git a/test/metabase/query_processor_test/date_time_zone_functions_test.clj b/test/metabase/query_processor_test/date_time_zone_functions_test.clj
index f99c5a18eb4..726c77e0752 100644
--- a/test/metabase/query_processor_test/date_time_zone_functions_test.clj
+++ b/test/metabase/query_processor_test/date_time_zone_functions_test.clj
@@ -470,7 +470,8 @@
             (is (true? (close-hour? hour (.getHour now))))))))))
 
 (deftest datetime-math-with-extract-test
-  (mt/test-drivers (mt/normal-drivers-with-feature :date-arithmetics)
+  ;; FIXME: mongo doesn't supports parsing strings as dates so we exclude it from this test temporarily (#27111)
+  (mt/test-drivers (disj (mt/normal-drivers-with-feature :date-arithmetics) :mongo)
     (mt/dataset times-mixed
       (doseq [{:keys [title expected query]}
               [{:title    "Nested date math then extract"
-- 
GitLab