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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 6
0
def test_weighted_7():
    data = bson.Binary(b"001")
    assert Weighted(data) == (6, data)
Ejemplo n.º 7
0
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"]
Ejemplo n.º 8
0
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"]