def test_sort_11(monty_sort, mongo_sort): docs = [{"a": bson.Timestamp(0, 1)}, {"a": bson.Timestamp(1, 1)}] 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_update_min_6(monty_update, mongo_update): docs = [{"a": bson.Timestamp(10, 5)}] spec = {"$min": {"a": bson.Timestamp(10, 0)}} monty_c = monty_update(docs, spec) mongo_c = mongo_update(docs, spec) assert next(mongo_c) == next(monty_c) monty_c.rewind() assert next(monty_c) == {"a": bson.Timestamp(10, 0)}
def test_qop_lt_11(monty_find, mongo_find): ts_0 = bson.Timestamp(0, 1) ts_1 = bson.Timestamp(1, 1) docs = [{"a": ts_0}, {"a": ts_1}] spec = {"a": {"$lt": ts_1}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 1 assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) assert next(mongo_c) == next(monty_c)
def test_qop_gte_11(monty_find, mongo_find): ts_0 = bson.Timestamp(0, 1) ts_1 = bson.Timestamp(1, 1) docs = [{"a": ts_0}, {"a": ts_1}] spec = {"a": {"$gte": ts_0}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 2 assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) for i in range(2): assert next(mongo_c) == next(monty_c)
def test_qop_lt_14(monty_find, mongo_find): ts_0 = bson.Timestamp(0, 1) dt_1 = datetime(1900, 1, 2) docs = [{"a": ts_0}, {"a": dt_1}] spec = {"a": {"$lt": dt_1}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 0 # They don't sort together assert count_documents(monty_c, spec) == count_documents(mongo_c, spec)
def test_qop_lte_14(monty_find, mongo_find): ts_0 = bson.Timestamp(0, 1) dt_1 = datetime(1900, 1, 2) docs = [{"a": ts_0}, {"a": dt_1}] spec = {"a": {"$lte": dt_1}} monty_c = monty_find(docs, spec) mongo_c = mongo_find(docs, spec) assert count_documents(mongo_c, spec) == 1 assert count_documents(monty_c, spec) == count_documents(mongo_c, spec) assert next(mongo_c) == next(monty_c)
def test_weighted_17(): data = bson.Timestamp(0, 1) assert Weighted(data) == (10, 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"]