Exemple #1
0
def test_key_query_get_data_bag_bad_source(query, test_data):
    db = DataBag(main=test_data)

    with pytest.raises(ValueError) as excinfo:
        key(query).get(db)

    assert "provided data from source" in str(excinfo.value).lower()
Exemple #2
0
def test_data_variants_processor_multi_values():
    # Lets test with multi_values set to True
    iter_db = processors.DataVariantsProcessor(
        query=jp("data.variants"),
        key_query=key("color"),
        new_source="color_data",
    ).parse_data(data_dict.variants_data_multi)

    db_list = list(iter_db)

    assert len(db_list) == 2

    assert list(db_list[0]["color_data"].values())[0] == "Black"

    expected_values_result = [
        {
            "color": "Black",
            "size": "13",
            "stock": True
        },
        {
            "color": "Black",
            "size": "15",
            "stock": True
        },
    ]
    assert db_list[0]["color_data_variants"] == expected_values_result
Exemple #3
0
def test_data_variants_processor():
    iter_db = processors.DataVariantsProcessor(
        query=jp("variants"),
        key_query=key("color"),
    ).parse_data(data_dict.variants_data)

    db_list = list(iter_db)

    assert len(db_list) == 2

    assert list(db_list[0]["main"].values())[0] == "Black"

    assert db_list[0]["main"] == {"color": "Black", "stock": True}
Exemple #4
0
def test_key_query_pseudo_key_exception():
    with pytest.raises(ValueError) as excinfo:
        key("prices::wrong").get(test_data_prices_dict)

    assert "pseudo key 'wrong' is not supported" in str(excinfo.value).lower()
Exemple #5
0
def test_key_query_get_list(query, test_data, result):
    assert key(query).get(test_data) == result
Exemple #6
0
def test_key_query_get_data_bag_source():
    db = DataBag(json_data=test_data_dict)

    assert key("product_type").get(db, source="json_data") == "smartphone"
    assert key("product_type").get(db, "json_data") == "smartphone"
Exemple #7
0
def test_key_query_get_data_bag(query, test_data, result):
    db = DataBag(main=test_data)
    assert key(query).get(db) == result
Exemple #8
0
import pytest

from easydata import parsers
from easydata.queries import key, pq
from tests.factory import data_dict, data_text


@pytest.mark.parametrize(
    "query, test_data, result",
    [
        (key("stock"), data_dict.stock, True),
        (key("stock2"), data_dict.stock, False),
    ],
)
def test_bool(query, test_data, result):
    bool_parser = parsers.Bool(query)
    assert bool_parser.parse(test_data) is result


@pytest.mark.parametrize(
    "test_data, result",
    [
        (123, True),
        (123.45, True),
        (0.15, True),
        (-0.15, True),
        (0, False),
        ("True", True),
        ("False", False),
        ("true", True),
        ("false", False),