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()
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
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}
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()
def test_key_query_get_list(query, test_data, result): assert key(query).get(test_data) == result
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"
def test_key_query_get_data_bag(query, test_data, result): db = DataBag(main=test_data) assert key(query).get(db) == result
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),