Adapt monger.{core,collection} and tests to recent changes
Down to 50 failures and 11 errors in `lein test`.
This commit is contained in:
parent
8511d3714d
commit
0b72761b44
11 changed files with 41 additions and 82 deletions
|
|
@ -44,8 +44,8 @@
|
|||
;;
|
||||
|
||||
(defn ^WriteResult insert
|
||||
"Saves document to collection and returns a write result monger.result/ok?
|
||||
and similar functions operate on. You can optionally specify a WriteConcern.
|
||||
"Saves document to collection and returns a write result monger.result/acknowledged?
|
||||
and related functions operate on. You can optionally specify a WriteConcern.
|
||||
|
||||
In case you need the exact inserted document returned, with the :_id key generated,
|
||||
use monger.collection/insert-and-return instead."
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@
|
|||
* http://clojuremongodb.info/articles/commands.html
|
||||
* http://clojuremongodb.info/articles/gridfs.html"
|
||||
(:refer-clojure :exclude [count])
|
||||
(:require [monger.conversion :refer :all]
|
||||
[monger.result :refer [ok?]])
|
||||
(:require [monger.conversion :refer :all])
|
||||
(:import [com.mongodb MongoClient MongoClientURI DB WriteConcern DBObject DBCursor Bytes MongoClientOptions MongoClientOptions$Builder ServerAddress MapReduceOutput MongoException]
|
||||
[com.mongodb.gridfs GridFS]
|
||||
[java.util Map ArrayList]))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
java.util.Date)
|
||||
(:require [monger.core :as mg]
|
||||
[monger.collection :as mc]
|
||||
[monger.result :refer [ok?]]
|
||||
[monger.result :refer [acknowledged?]]
|
||||
[clojure.test :refer :all]
|
||||
[monger.operators :refer :all]))
|
||||
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
(let [coll "docs"
|
||||
oid (ObjectId.)]
|
||||
(mc/insert db coll {:_id oid :title "Document 1" :published true})
|
||||
(is (ok? (mc/update db coll {:_id oid} {$unset {:published 1 :featured true}})))
|
||||
(is (acknowledged? (mc/update db coll {:_id oid} {$unset {:published 1 :featured true}})))
|
||||
(is (= {:_id oid :title "Document 1"}
|
||||
(mc/find-map-by-id db coll oid)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[monger.command :as mcom]
|
||||
[monger.collection :as mc]
|
||||
[clojure.test :refer :all]
|
||||
[monger.result :refer [ok?]]
|
||||
[monger.result :refer [acknowledged?]]
|
||||
[monger.conversion :refer [from-db-object]]))
|
||||
|
||||
(let [conn (mg/connect)
|
||||
|
|
@ -11,24 +11,24 @@
|
|||
(deftest ^{:command true} test-reindex-collection
|
||||
(let [_ (mc/insert db "test" {:name "Clojure"})
|
||||
result (mcom/reindex-collection db "test")]
|
||||
(is (ok? result))
|
||||
(is (acknowledged? result))
|
||||
(is (get result "indexes"))))
|
||||
|
||||
(deftest ^{:command true} test-server-status
|
||||
(let [status (mcom/server-status db)]
|
||||
(is (ok? status))
|
||||
(is (acknowledged? status))
|
||||
(is (not-empty status))
|
||||
(is (get status "serverUsed"))))
|
||||
|
||||
(deftest ^{:command true} test-top
|
||||
(let [result (mcom/top conn)]
|
||||
(is (ok? result))
|
||||
(is (acknowledged? result))
|
||||
(is (not-empty result))
|
||||
(is (get result "serverUsed"))))
|
||||
|
||||
(deftest ^{:command true} test-running-is-master-as-an-arbitrary-command
|
||||
(let [raw (mg/command db {:isMaster 1})
|
||||
result (from-db-object raw true)]
|
||||
(is (ok? result))
|
||||
(is (ok? raw))
|
||||
(is (acknowledged? result))
|
||||
(is (acknowledged? raw))
|
||||
(is (:ismaster result)))))
|
||||
|
|
|
|||
|
|
@ -55,10 +55,3 @@
|
|||
dbs (mg/get-db-names conn)]
|
||||
(is (not (empty? dbs)))
|
||||
(is (dbs "monger-test"))))
|
||||
|
||||
(deftest get-last-error
|
||||
(let [connection (mg/connect)
|
||||
db (mg/get-db connection "monger-test")]
|
||||
(is (monger.result/ok? (mg/get-last-error db)))
|
||||
(is (monger.result/ok? (mg/get-last-error db WriteConcern/NORMAL)))
|
||||
(is (monger.result/ok? (mg/get-last-error db 1 100 true)))))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
[monger.search :as ms]
|
||||
[monger.command :as cmd]
|
||||
[clojure.test :refer [deftest is use-fixtures]]
|
||||
[monger.result :refer [ok?]])
|
||||
[monger.result :refer [acknowledged?]])
|
||||
(:import com.mongodb.BasicDBObjectBuilder))
|
||||
|
||||
(let [conn (mg/connect)
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
(.append "setParameter" 1)
|
||||
(.append "textSearchEnabled" true))
|
||||
cmd (.get bldr)]
|
||||
(is (ok? (cmd/raw-admin-command conn cmd))))
|
||||
(is (acknowledged? (cmd/raw-admin-command conn cmd))))
|
||||
(f))
|
||||
|
||||
(defn purge-collections
|
||||
|
|
|
|||
|
|
@ -36,20 +36,20 @@
|
|||
(deftest insert-a-basic-document-without-id-and-with-default-write-concern
|
||||
(let [collection "people"
|
||||
doc {:name "Joe" :age 30}]
|
||||
(is (monger.result/ok? (mc/insert db collection doc)))
|
||||
(is (mc/insert db collection doc))
|
||||
(is (= 1 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-basic-document-with-explicitly-passed-database-without-id-and-with-default-write-concern
|
||||
(let [collection "people"
|
||||
doc {:name "Joe" :age 30}]
|
||||
(dotimes [n 5]
|
||||
(is (monger.result/ok? (mc/insert db collection doc WriteConcern/SAFE))))
|
||||
(mc/insert db collection doc WriteConcern/SAFE))
|
||||
(is (= 5 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-basic-document-without-id-and-with-explicit-write-concern
|
||||
(let [collection "people"
|
||||
doc {:name "Joe" :age 30}]
|
||||
(is (monger.result/ok? (mc/insert db collection doc WriteConcern/SAFE)))
|
||||
(is (mc/insert db collection doc WriteConcern/SAFE))
|
||||
(is (= 1 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-basic-db-object-without-id-and-with-default-write-concern
|
||||
|
|
@ -95,7 +95,9 @@
|
|||
result (mc/insert db collection doc)]
|
||||
(is (= {:rps 10 :eps 20} (:record (mc/find-map-by-id db collection id))))))
|
||||
|
||||
(deftest test-insert-a-document-with-dbref
|
||||
;; TODO: disabled until we figure out how to implement dereferencing of DBRefs
|
||||
;; in 3.0 in a compatible way (and if that's possible at all). MK.
|
||||
#_ (deftest test-insert-a-document-with-dbref
|
||||
(mc/remove db "widgets")
|
||||
(mc/remove db "owners")
|
||||
(let [coll1 "widgets"
|
||||
|
|
@ -153,26 +155,26 @@
|
|||
(deftest insert-a-batch-of-basic-documents-without-ids-and-with-default-write-concern
|
||||
(let [collection "people"
|
||||
docs [{:name "Joe" :age 30} {:name "Paul" :age 27}]]
|
||||
(is (monger.result/ok? (mc/insert-batch db collection docs)))
|
||||
(is (mc/insert-batch db collection docs))
|
||||
(is (= 2 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-batch-of-basic-documents-without-ids-and-with-explicit-write-concern
|
||||
(let [collection "people"
|
||||
docs [{:name "Joe" :age 30} {:name "Paul" :age 27}]]
|
||||
(is (monger.result/ok? (mc/insert-batch db collection docs WriteConcern/NORMAL)))
|
||||
(is (mc/insert-batch db collection docs WriteConcern/FSYNCED))
|
||||
(is (= 2 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-batch-of-basic-documents-with-explicit-database-without-ids-and-with-explicit-write-concern
|
||||
(let [collection "people"
|
||||
docs [{:name "Joe" :age 30} {:name "Paul" :age 27}]]
|
||||
(dotimes [n 44]
|
||||
(is (monger.result/ok? (mc/insert-batch db collection docs WriteConcern/NORMAL))))
|
||||
(is (mc/insert-batch db collection docs WriteConcern/FSYNCED)))
|
||||
(is (= 88 (mc/count db collection)))))
|
||||
|
||||
(deftest insert-a-batch-of-basic-documents-from-a-lazy-sequence
|
||||
(let [collection "people"
|
||||
numbers (range 0 1000)]
|
||||
(is (monger.result/ok? (mc/insert-batch db collection (map (fn [^long l]
|
||||
{:n l})
|
||||
numbers))))
|
||||
(is (mc/insert-batch db collection (map (fn [^long l]
|
||||
{:n l})
|
||||
numbers)))
|
||||
(is (= (count numbers) (mc/count db collection))))))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
java.util.Date)
|
||||
(:require [monger.collection :as mc]
|
||||
[monger.core :as mg]
|
||||
[monger.result :as mgres]
|
||||
[clojurewerkz.support.js :as js]
|
||||
[clojure.test :refer :all]
|
||||
[monger.operators :refer :all]
|
||||
|
|
@ -34,18 +33,16 @@
|
|||
expected [{:_id "CA", :value 204.9} {:_id "IL", :value 39.5} {:_id "NY", :value 697.0}]]
|
||||
(deftest test-basic-inline-map-reduce-example
|
||||
(mc/remove db collection)
|
||||
(is (mgres/ok? (mc/insert-batch db collection batch)))
|
||||
(mc/insert-batch db collection batch)
|
||||
(let [output (mc/map-reduce db collection mapper reducer nil MapReduceCommand$OutputType/INLINE {})
|
||||
results (from-db-object ^DBObject (.results ^MapReduceOutput output) true)]
|
||||
(mgres/ok? output)
|
||||
(is (= expected results))))
|
||||
|
||||
(deftest test-basic-map-reduce-example-that-replaces-named-collection
|
||||
(mc/remove db collection)
|
||||
(is (mgres/ok? (mc/insert-batch db collection batch)))
|
||||
(mc/insert-batch db collection batch)
|
||||
(let [output (mc/map-reduce db collection mapper reducer "mr_outputs" {})
|
||||
results (from-db-object ^DBObject (.results ^MapReduceOutput output) true)]
|
||||
(mgres/ok? output)
|
||||
(is (= 3 (mg/count results)))
|
||||
(is (= expected
|
||||
(map #(from-db-object % true) (seq results))))
|
||||
|
|
@ -55,11 +52,10 @@
|
|||
|
||||
(deftest test-basic-map-reduce-example-that-merged-results-into-named-collection
|
||||
(mc/remove db collection)
|
||||
(is (mgres/ok? (mc/insert-batch db collection batch)))
|
||||
(mc/insert-batch db collection batch)
|
||||
(mc/map-reduce db collection mapper reducer "merged_mr_outputs" MapReduceCommand$OutputType/MERGE {})
|
||||
(is (mgres/ok? (mc/insert db collection { :state "OR" :price 17.95 :quantity 4 })))
|
||||
(mc/insert db collection { :state "OR" :price 17.95 :quantity 4 })
|
||||
(let [^MapReduceOutput output (mc/map-reduce db collection mapper reducer "merged_mr_outputs" MapReduceCommand$OutputType/MERGE {})]
|
||||
(mgres/ok? output)
|
||||
(is (= 4 (mg/count output)))
|
||||
(is (= ["CA" "IL" "NY" "OR"]
|
||||
(map :_id (mc/find-maps db "merged_mr_outputs"))))
|
||||
|
|
|
|||
|
|
@ -2,40 +2,10 @@
|
|||
(:import [com.mongodb BasicDBObject WriteResult WriteConcern] java.util.Date)
|
||||
(:require [monger.core :as mg]
|
||||
[monger.collection :as mc]
|
||||
monger.result
|
||||
[monger.result :as mgres]
|
||||
monger.util
|
||||
[clojure.test :refer :all]))
|
||||
|
||||
(deftest test-ok?
|
||||
(let [result-that-is-not-ok-1 (doto (BasicDBObject.) (.put "ok" 0))
|
||||
result-that-is-not-ok-2 (doto (BasicDBObject.) (.put "ok" "false"))
|
||||
result-that-is-ok-1 (doto (BasicDBObject.) (.put "ok" 1))
|
||||
result-that-is-ok-2 (doto (BasicDBObject.) (.put "ok" "true"))
|
||||
result-that-is-ok-3 (doto (BasicDBObject.) (.put "ok" 1.0))]
|
||||
(is (not (monger.result/ok? result-that-is-not-ok-1)))
|
||||
(is (not (monger.result/ok? result-that-is-not-ok-2)))
|
||||
(is (monger.result/ok? result-that-is-ok-1))
|
||||
(is (monger.result/ok? result-that-is-ok-2))
|
||||
(is (monger.result/ok? result-that-is-ok-3))))
|
||||
|
||||
|
||||
(deftest test-has-error?
|
||||
(let [result-that-has-no-error1 (doto (BasicDBObject.) (.put "ok" 0))
|
||||
result-that-has-no-error2 (doto (BasicDBObject.) (.put "err" ""))
|
||||
result-that-has-error1 (doto (BasicDBObject.) (.put "err" (BasicDBObject.)))]
|
||||
(is (not (monger.result/has-error? result-that-has-no-error1)))
|
||||
(is (not (monger.result/has-error? result-that-has-no-error2)))
|
||||
(is (monger.result/has-error? result-that-has-error1))))
|
||||
|
||||
|
||||
(deftest test-updated-existing?-with-db-object
|
||||
(let [input1 (doto (BasicDBObject.) (.put "updatedExisting" true))
|
||||
input2 (doto (BasicDBObject.) (.put "updatedExisting" false))
|
||||
input3 (BasicDBObject.)]
|
||||
(is (monger.result/updated-existing? input1))
|
||||
(is (not (monger.result/updated-existing? input2)))
|
||||
(is (not (monger.result/updated-existing? input3)))))
|
||||
|
||||
(let [conn (mg/connect)
|
||||
db (mg/get-db conn "monger-test")]
|
||||
(deftest test-updated-existing?-with-write-result
|
||||
|
|
@ -43,9 +13,10 @@
|
|||
(let [collection "libraries"
|
||||
doc-id (monger.util/random-uuid)
|
||||
date (Date.)
|
||||
doc { :created-at date, :data-store "MongoDB", :language "Clojure", :_id doc-id }
|
||||
modified-doc { :created-at date, :data-store "MongoDB", :language "Erlang", :_id doc-id }]
|
||||
(is (not (monger.result/updated-existing? (mc/update db collection { :language "Clojure" } doc {:upsert true}))))
|
||||
(is (monger.result/updated-existing? (mc/update db collection { :language "Clojure" } doc {:upsert true})))
|
||||
(monger.result/updated-existing? (mc/update db collection { :language "Clojure" } modified-doc {:multi false :upsert true}))
|
||||
(mc/remove db collection))))
|
||||
doc { :created-at date :data-store "MongoDB" :language "Clojure" :_id doc-id }
|
||||
modified-doc { :created-at date :data-store "MongoDB" :language "Erlang" :_id doc-id }]
|
||||
(is (not (mgres/updated-existing? (mc/update db collection { :language "Clojure" } doc {:upsert true}))))
|
||||
(is (mgres/updated-existing? (mc/update db collection { :language "Clojure" } doc {:upsert true})))
|
||||
(mgres/updated-existing? (mc/update db collection { :language "Clojure" } modified-doc {:multi false :upsert true}))
|
||||
(mc/remove db collection)
|
||||
(mg/disconnect conn))))
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
|
||||
(use-fixtures :each purge-things-collection)
|
||||
|
||||
(monger.core/set-default-write-concern! WriteConcern/NORMAL)
|
||||
|
||||
(deftest ^{:performance true} insert-large-batches-of-documents-without-object-ids
|
||||
(doseq [n [10 100 1000 10000 20000]]
|
||||
(let [collection "things"
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@
|
|||
(deftest ^{:updating true} save-a-new-document
|
||||
(let [collection "people"
|
||||
document {:name "Joe" :age 30}]
|
||||
(is (mr/ok? (mc/save db "people" document)))
|
||||
(is (mc/save db "people" document))
|
||||
(is (= 1 (mc/count db collection)))))
|
||||
|
||||
(deftest ^{:updating true} save-and-return-a-new-document
|
||||
|
|
@ -103,7 +103,7 @@
|
|||
(let [collection "people"
|
||||
doc-id "people-1"
|
||||
document { :_id doc-id, :name "Joe", :age 30 }]
|
||||
(is (mr/ok? (mc/insert db collection document)))
|
||||
(is (mc/insert db collection document))
|
||||
(is (= 1 (mc/count db collection)))
|
||||
(mc/save db collection { :_id doc-id, :name "Alan", :age 40 })
|
||||
(is (= 1 (mc/count db collection { :name "Alan", :age 40 })))))
|
||||
|
|
@ -122,7 +122,7 @@
|
|||
(let [collection "people"
|
||||
doc-id (mu/object-id)
|
||||
document { :_id doc-id, :name "Joe", :age 30 }]
|
||||
(is (mr/ok? (mc/insert db collection document)))
|
||||
(is (mc/insert db collection document))
|
||||
(is (= 1 (mc/count db collection)))
|
||||
(is (= 0 (mc/count db collection { :has_kids true })))
|
||||
(mc/update db collection { :_id doc-id } { $set { :has_kids true } })
|
||||
|
|
@ -134,7 +134,7 @@
|
|||
doc-id (mu/object-id)
|
||||
document { :_id doc-id :abc 0 :def 10 }]
|
||||
(mc/remove db collection)
|
||||
(is (mr/ok? (mc/insert db collection document)))
|
||||
(is (mc/insert db collection document))
|
||||
(is (= 1 (mc/count db collection {:abc {$exists true} :def {$exists true}})))
|
||||
(mc/update db collection {:abc {$exists true} :def {$exists true}} {$inc {:abc 1 :def 0}})
|
||||
(is (= 1 (mc/count db collection { :abc 1 })))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue