def test_qop_in_15(monty_find, mongo_find): docs = [ { "a": [{ "b": bson.Binary(b"00") }] }, { "a": [{ "b": bson.Binary(b"01") }] }, ] spec = {"a.b": {"$in": [b"01"]}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) count = 1 if PY3 else 0 assert count_documents(mongo_c, spec) == count assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) if PY3: assert next(mongo_c) == next(monty_c) mongo_c.rewind() assert next(mongo_c)["_id"] == 1
def test_qop_ne_5(monty_find, mongo_find): docs = [ {"a": [{"b": bson.Binary(b"00")}]}, {"a": [{"b": bson.Binary(b"01")}]}, ] spec = {"a.b": {"$ne": b"01"}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) count = 1 if PY3 else 2 assert count_documents(mongo_c, spec) == count assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) for i in range(count): assert next(mongo_c) == next(monty_c)
def test_sort_6(monty_sort, mongo_sort): docs = [ { "a": bson.Binary(b"00") }, { "a": bson.Binary(b"01") }, ] sort = [("a", -1)] monty_c = monty_sort(docs, sort) mongo_c = mongo_sort(docs, sort) for i in range(len(docs)): assert next(mongo_c)["_id"] == next(monty_c)["_id"]
def test_qop_gte_23(monty_find, mongo_find): bin_0 = bson.Binary(b"0") bin_1 = bson.Binary(b"1") byt_0 = b"0" byt_1 = b"1" docs = [{"a": bin_0}, {"a": bin_1}, {"a": byt_0}, {"a": byt_1}] spec = {"a": {"$gte": byt_0}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 4 if PY3 else 2 assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) r = 4 if PY3 else 2 for i in range(r): assert next(mongo_c) == next(monty_c)
def test_qop_lt_23(monty_find, mongo_find): bin_0 = bson.Binary(b"0") bin_1 = bson.Binary(b"1") byt_0 = b"0" byt_1 = b"1" docs = [{"a": bin_0}, {"a": bin_1}, {"a": byt_0}, {"a": byt_1}] spec = {"a": {"$lt": byt_1}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 2 if PY3 else 1 assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) if PY3: for i in range(2): assert next(mongo_c) == next(monty_c) else: assert next(mongo_c) == next(monty_c)
def test_weighted_7(): data = bson.Binary(b"001") assert Weighted(data) == (6, data)
def test_sort_19(monty_sort, mongo_sort): docs = [ { "a": ["x", True] }, { "a": None }, { "a": [] }, { "a": [5, []] }, { "a": { "s": 7 } }, { "a": { "s": [9] } }, { "a": { "s": 10 } }, { "a": 6 }, { "a": 4 }, { "a": [5, None] }, { "a": [5, [1]] }, { "a": [bson.Decimal128("4.5"), bson.Binary(b"0")] }, { "a": [{ "s": 5 }, False] }, { "a": [{ "s": 9 }] }, { "a": [True, "y"] }, { "a": bson.Binary(b"a") }, { "a": b"bytes" }, { "a": ["abc"] }, { "a": "banana" }, { "a": "appple" }, { "a": [bson.Regex("^a", "ix")] }, { "a": bson.Regex("^b") }, { "a": bson.Code("x", {"m": 0}) }, { "a": bson.Code("y") }, { "a": bson.Code("y", {}) }, { "a": bson.Code("y", {"m": 0}) }, { "a": bson.MinKey() }, { "a": bson.MaxKey() }, { "a": bson.Timestamp(0, 1) }, { "a": bson.Timestamp(1, 1) }, { "a": bson.ObjectId(b"000000000000") }, { "a": bson.ObjectId(b"000000000001") }, { "a": datetime(1900, 1, 1) }, { "a": datetime(1900, 1, 2) }, ] sort = [("_id", 1), ("a", 1)] monty_c = monty_sort(docs, sort) mongo_c = mongo_sort(docs, sort) for i in range(len(docs)): assert next(mongo_c)["_id"] == next(monty_c)["_id"]
def test_sort_18(monty_sort, mongo_sort): docs = [ { "a": ["x", True] }, { "a": None }, { "a": [] }, { "a": [5, []] }, { "a": { "s": 7 } }, { "a": { "s": [9] } }, { "a": { "s": 10 } }, { "a": 6 }, { "a": 4 }, { "a": [5, None] }, { "a": [5, [1]] }, { "a": [bson.Decimal128("4.5"), bson.Binary(b"0")] }, { "a": [{ "s": 5 }, False] }, { "a": [{ "s": 9 }] }, { "a": [True, "y"] }, { "a": [] }, ] sort = [("_id", 1), ("a", -1)] monty_c = monty_sort(docs, sort) mongo_c = mongo_sort(docs, sort) for i in range(len(docs)): assert next(mongo_c)["_id"] == next(monty_c)["_id"]