def test_qp_chained():
    obj = (QueryPredicate(masterVariant__slug__nl="test-nl1")
           & QueryPredicate(masterVariant__slug__nl="test-nl2", )
           & (QueryPredicate(masterVariant__prices__is_defined=True, )
              | QueryPredicate(masterVariant__prices__amount__gte=100)))
    assert str(obj) == (
        '((masterVariant(slug(nl = "test-nl1")))'
        ' AND (masterVariant(slug(nl = "test-nl2"))))'
        " AND ((masterVariant(prices is defined)) OR (masterVariant(prices(amount >= 100))))"
    )
def test_nested_dict():
    obj = QueryPredicate(masterVariant={
        "slug__en-GB": "something",
        "prices": 100
    })
    assert str(
        obj) == 'masterVariant(slug(en-GB = "something") AND prices = 100)'

    obj = QueryPredicate(supplyChannel={"id": 100, "sku": "S001"})
    assert str(obj) == 'supplyChannel(id = 100 AND sku = "S001")'
def test_qp_nested():
    obj = QueryPredicate(masterVariant__slug__nl="test-nl1") | (QueryPredicate(
        masterVariant__slug=(
            QueryPredicate(nl="test-nl2")
            & (QueryPredicate(en="test-en") | QueryPredicate(fr="test-fr")))))
    assert str(obj) == (
        '(masterVariant(slug(nl = "test-nl1")))'
        " OR "
        '(masterVariant(slug((nl = "test-nl2") AND ((en = "test-en") OR (fr = "test-fr")))))'
    )
def test_two_filters():
    obj = QueryPredicate(masterVariant__slug__nl="some-slug",
                         masterVariant__prices__country="NL")
    assert (
        str(obj) ==
        'masterVariant(slug(nl = "some-slug")) AND masterVariant(prices(country = "NL"))'
    )
def test_is_defined():
    obj = QueryPredicate(masterVariant__slug__is_defined=True,
                         masterVariant__prices__is_defined=False)
    assert (
        str(obj) ==
        "masterVariant(slug is defined) AND masterVariant(prices is not defined)"
    )
def test_gte():
    obj = QueryPredicate(
        masterVariant__slug__nl__exact="some-slug",
        masterVariant__prices__amount__gte=100,
    )
    assert (
        str(obj) ==
        'masterVariant(slug(nl = "some-slug")) AND masterVariant(prices(amount >= 100))'
    )
def test_qp_in():
    obj = QueryPredicate(masterVariant__slug__nl__in=["test-nl", "test-en"], )
    assert str(obj) == 'masterVariant(slug(nl in ("test-nl", "test-en")))'
def test_qp_and():
    obj = QueryPredicate(masterVariant__slug=QueryPredicate(nl="test-nl")
                         & QueryPredicate(en="test-en"))
    assert str(
        obj) == 'masterVariant(slug((nl = "test-nl") AND (en = "test-en")))'
def test_qp_contains_any():
    obj = QueryPredicate(
        masterVariant__slug__nl__contains_any=["slug-1", "slug-2"])
    assert str(
        obj) == 'masterVariant(slug(nl contains any ("slug-1", "slug-2")))'
def test_simple():
    obj = QueryPredicate(masterVariant__prices__country="NL")
    assert str(obj) == 'masterVariant(prices(country = "NL"))'
def test_dict_format():
    obj = QueryPredicate(**{"masterVariant__slug__en-GB": "something"})
    assert str(obj) == 'masterVariant(slug(en-GB = "something"))'
Пример #12
0
def test_qp_or():
    obj = QueryPredicate(masterVariant__slug=QueryPredicate(nl="test-nl")
                         | QueryPredicate(en="test-en"))
    assert str(obj) == 'masterVariant(slug(nl = "test-nl" OR en = "test-en"))'