def test_filter(predicate, paths):
    pf = predicates.PredicateFilter(predicate, schema=ProductDataSchema)

    found_paths = []

    org_filter_field = pf.filter_field

    def mock_filter_field(obj, path, operator, value):
        found_paths.append(path)
        return org_filter_field(obj, path, operator, value)

    pf.filter_field = mock_filter_field
    pf.match({"slug": {"nl-BE": "test-categorie"}})
    assert paths == found_paths
示例#2
0
def test_in_filter():
    skus = '("1337", "1338")'
    predicate = f"masterVariant(sku in {skus}) or variants(sku in {skus})"
    pf = predicates.PredicateFilter(predicate, schema=ProductDataSchema)

    product_data = {
        "masterVariant": {
            "sku": "1337"
        },
        "variants": [{
            "sku": "1338"
        }, {
            "sku": "1339"
        }],
    }
    assert pf.match(product_data) is True

    product_data = {
        "masterVariant": {
            "sku": "1444"
        },
        "variants": [{
            "sku": "1338"
        }, {
            "sku": "1339"
        }],
    }
    assert pf.match(product_data) is True

    product_data = {
        "masterVariant": {
            "sku": "1444"
        },
        "variants": [{
            "sku": "1438"
        }, {
            "sku": "1139"
        }],
    }
    assert pf.match(product_data) is False
def test_tokenize(predicate):
    predicates.PredicateFilter(predicate, schema=None)
示例#4
0
def test_tokenize(predicate):
    predicates.PredicateFilter(predicate)