Exemple #1
0
def test_convert_to_compare():
    delta = DeepDelta.convert_to_compare(
        products1, products2, None, lambda name, case_ignored: 'no' in name)
    assert delta == {
        '2009': {
            'description': ('Hochy', 'Hochey')
        },
        '5001': {
            'unit': ('per', 'piece')
        }
    }

    comparators = DeepDelta(DEFAULT_DELTA_CONFIG
                            ^ DeltaConfig.ValueCaseIgnored)
    delta = DeepDelta.convert_to_compare(
        products1, products2, comparators,
        lambda name, case_ignored: 'no' in name)
    assert delta == {
        '1202': {
            'description': ('Subway', 'SUBWAY')
        },
        '2009': {
            'description': ('Hochy', 'Hochey'),
            'name': ('wipes', 'Wipes')
        },
        '5001': {
            'unit': ('per', 'piece')
        }
    }
Exemple #2
0
def test_named_comparator():
    comparators = DeepDelta(DEFAULT_DELTA_CONFIG
                            ^ DeltaConfig.ValueCaseIgnored)
    compare_p = lambda l, r, p: DeepDelta.convert_to_compare(
        l, r, comparators, lambda n, case_ignored: 'no' in n)
    named = {
        'Id':
        lambda l, r, p: None if l == r or l + r == 0 else (l, r),
        'products':
        compare_p,
        'Purchased':
        lambda l, r, p: None
        if Comparator.compare_as_datetime_values(l, r) else (l, r)
    }
    order1 = {'id': 100, 'purchased': '2020 Aug 6', 'products': products1}
    order2 = {'ID': -100, 'PURCHASED': '6/Aug/2020', 'PRODUCTS': products2}
    delta = DeepDelta.compare(order1, order2, None, None, named)
    assert delta == {
        'products': {
            '1202': {
                'description': ('Subway', 'SUBWAY')
            },
            '2009': {
                'description': ('Hochy', 'Hochey'),
                'name': ('wipes', 'Wipes')
            },
            '5001': {
                'unit': ('per', 'piece')
            }
        }
    }