Skip to content
Snippets Groups Projects
Commit 22be5068 authored by Allen Gilliland's avatar Allen Gilliland
Browse files

Merge branch 'master' into newsletter_on_setup

parents 62afdf88 84be4678
No related branches found
No related tags found
No related merge requests found
......@@ -78,7 +78,7 @@
[(+suffix db-name) "dbo" table-name field-name]))
(defrecord SQLServerDatasetLoader [])
(defrecord SQLServerDatasetLoader [dbpromise])
(extend SQLServerDatasetLoader
generic/IGenericSQLDatasetLoader
......@@ -97,16 +97,13 @@
:database->connection-details database->connection-details
:engine (constantly :sqlserver)})))
(defn dataset-loader []
(->SQLServerDatasetLoader))
(defn- cleanup-leftover-dbs
"Clean up any leftover DBs that weren't destroyed by the last test run (eg, if it failed for some reason).
This is important because we're limited to a quota of 30 DBs on RDS."
{:expectations-options :before-run}
[]
(when (contains? @(resolve 'metabase.test.data.datasets/test-dataset-names) :sqlserver)
(when (contains? @(resolve 'metabase.test.data.datasets/test-engines) :sqlserver)
(let [connection-spec ((sqlserver :connection-details->spec) (database->connection-details nil :server nil))
leftover-dbs (mapv :name (jdbc/query connection-spec "SELECT name
FROM master.dbo.sysdatabases
......
......@@ -72,7 +72,7 @@
;;; ## USE
(defmacro use [query db]
(assoc-in query [:context :driver] (keyword db)))
(assoc-in query [:context :engine] (keyword db)))
;;; ## OF
......@@ -240,17 +240,17 @@
`(data/with-temp-db [~'_ (resolve-dataset ~dataset)]
~query)))
(defmacro with-driver [driver query]
(if-not driver
(defmacro with-engine [engine query]
(if-not engine
query
`(datasets/with-dataset ~driver
`(datasets/with-engine ~engine
~query)))
(defmacro Q*** [f {:keys [driver dataset return table-name]} query]
(defmacro Q*** [f {:keys [engine dataset return table-name]} query]
(assert table-name
"Table name not specified in query, did you include an 'of' clause?")
`(do (db/setup-db-if-needed)
(->> (with-driver ~driver
(->> (with-engine ~engine
(binding [*table-name* ~table-name]
(with-temp-db ~dataset
(~f ~query))))
......@@ -266,7 +266,7 @@
{:database (data/id)
:type "query"
:query {}
:context {:driver nil
:context {:engine nil
:dataset nil}}
~@(split-with-tokens top-level-tokens args)))
......
......@@ -64,18 +64,18 @@
;; # ------------------------------ FUNCTIONS THAT GET RUN ON TEST SUITE START / STOP ------------------------------
(defn load-test-datasets
(defn- load-test-data!
"Call `load-data!` on all the datasets we're testing against."
[]
(doseq [dataset-name datasets/test-dataset-names]
(log/info (format "Loading test data: %s..." (name dataset-name)))
(let [dataset (datasets/dataset-name->dataset dataset-name)]
(doseq [engine datasets/test-engines]
(log/info (format "Loading test data: %s..." (name engine)))
(let [dataset (datasets/engine->loader engine)]
(datasets/load-data! dataset)
;; Check that dataset is loaded and working
(datasets/with-dataset dataset-name
(datasets/with-engine engine
(assert (Table (data/id :venues))
(format "Loading test dataset %s failed: could not find 'venues' Table!" dataset-name))))))
(format "Loading test dataset %s failed: could not find 'venues' Table!" engine))))))
(defn test-startup
{:expectations-options :before-run}
......@@ -83,7 +83,7 @@
;; We can shave about a second from unit test launch time by doing the various setup stages in on different threads
(let [setup-db (future (time (do (log/info "Setting up test DB and running migrations...")
(db/setup-db :auto-migrate true)
(load-test-datasets)
(load-test-data!)
(metabase.models.setting/set :site-name "Metabase Test")
(core/initialization-complete!))))]
(core/start-jetty)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment