Exemplo n.º 1
0
def test_leaf_preserves_all_falsy_but_none(value):
    key = 'key'
    converted = node(key, value).to_dict()

    if value is None:
        assert converted is None
    else:
        assert converted == {key: value}
Exemplo n.º 2
0
def test_mforest_of_trees():
    target = mforest(
        node('t1', 1),
        node(
            't2',
            mforest(
                node('t2.1', mforest(
                    node('t2.1.1', 2),
                    node('t2.1.2', 3),
                )), node('t2.2', 4))), node('t3', 5))

    actual = target.to_dict()
    expected = {
        't1': 1,
        't2': {
            't2.1': {
                't2.1.1': 2,
                't2.1.2': 3
            },
            't2.2': 4
        },
        't3': 5
    }

    assert actual == expected
Exemplo n.º 3
0
def test_prune_leaf():
    root = node('root', mforest(
        node('n1', mforest(
            node('l1', None),
            node('l2', 2)
        )),
        node('n2', mforest(
            node('l3', 3),
            node('l4', 4)
        ))
    ))

    expected = {
        'root': {
            'n1': {
                'l2': 2
            },
            'n2': {
                'l3': 3,
                'l4': 4
            }
        }
    }

    assert root.to_dict() == expected
Exemplo n.º 4
0
def test_forest_of_trees():
    target = forest(
        node('t1', 1),
        node(
            't2',
            forest(
                node('t2.1', forest(
                    node('t2.1.1', 2),
                    node('t2.1.2', 3),
                )), node('t2.2', 4))), node('t3', 5))

    actual = target.to_dict()
    expected = [{
        't1': 1
    }, {
        't2': [{
            't2.1': [{
                't2.1.1': 2
            }, {
                't2.1.2': 3
            }]
        }, {
            't2.2': 4
        }]
    }, {
        't3': 5
    }]

    assert actual == expected
Exemplo n.º 5
0
def test_prune_inner_nodes():
    root = node(
        'root',
        mforest(
            node(
                'n1',
                mforest(node('l1.1', None),
                        node('n1.2', mforest(node('l1.2.1', None))),
                        node('l1.3', None))),
            node(
                'n2',
                mforest(
                    node('l2.1', 3),
                    node(
                        'n2.2',
                        mforest(
                            node('l2.2.1', None),
                            node(
                                'n2.2.1',
                                mforest(
                                    node('l2.2.1.1', None),
                                    node('l2.2.1.2', None),
                                )))), node('l2.3', 4),
                    node(
                        'n2.4',
                        mforest(
                            node('l2.4.1', 5),
                            node(
                                'n2.4.2',
                                mforest(node('l2.4.2.1', None),
                                        node('l2.4.2.2', 6)))))))))

    expected = {
        'root': {
            'n2': {
                'l2.1': 3,
                'l2.3': 4,
                'n2.4': {
                    'l2.4.1': 5,
                    'n2.4.2': {
                        'l2.4.2.2': 6
                    }
                }
            }
        }
    }

    assert root.to_dict() == expected
Exemplo n.º 6
0
def entities(*children):
    return node('entities', forest(*children))
Exemplo n.º 7
0
def test_full_tree():
    root = node(
        'root',
        mforest(
            node('n1', mforest(node('l1', 1), node('l2', 2))),
            node(
                'n2',
                mforest(
                    node('l3', 3),
                    node(
                        'n2.1',
                        forest(
                            node('n2.1.1', mforest(node('l5', 5),
                                                   node('l6', 6))),
                            node('l7', 7), node('l8', 8))), node('l4', 4))),
            node(
                'n3',
                forest(node('n3.1', mforest(node('l9', 9), node('l10', 10))),
                       node('n3.2', mforest(node('l11', 11), node('l12',
                                                                  12)))))))

    expected = {
        'root': {
            'n1': {
                'l1': 1,
                'l2': 2
            },
            'n2': {
                'l3': 3,
                'n2.1': [{
                    'n2.1.1': {
                        'l5': 5,
                        'l6': 6
                    }
                }, {
                    'l7': 7
                }, {
                    'l8': 8
                }],
                'l4': 4
            },
            'n3': [{
                'n3.1': {
                    'l9': 9,
                    'l10': 10
                }
            }, {
                'n3.2': {
                    'l11': 11,
                    'l12': 12
                }
            }]
        }
    }

    assert root.to_dict() == expected
Exemplo n.º 8
0
def description(value):
    return node('description', value)
Exemplo n.º 9
0
def entity_id(eid, id_pattern):  # TODO: rather add choice operator to KVTree?
    if eid:
        return node('id', str(eid))
    else:
        return node('idPattern', id_pattern if id_pattern else '.*')
Exemplo n.º 10
0
def test_mforest_of_leaves():
    actual = mforest(node('l1', 1), node('l2', 2)).to_dict()
    expected = {'l1': 1, 'l2': 2}

    assert actual == expected
Exemplo n.º 11
0
def test_forest_of_leaves():
    actual = forest(node('l1', 1), node('l2', 2)).to_dict()
    expected = [{'l1': 1}, {'l2': 2}]

    assert actual == expected
Exemplo n.º 12
0
def headers(*children):
    return node('headers', mforest(*children))
Exemplo n.º 13
0
def custom(notification_url, *children):
    return node('httpCustom', mforest(node('url', notification_url),
                                      *children))
Exemplo n.º 14
0
def url(value):
    return node('http', mforest(node('url', value)))
Exemplo n.º 15
0
def notification(*children):
    return node('notification', mforest(*children))
Exemplo n.º 16
0
def attrs(csv):
    return node('attrs', csv.split(',') if csv else None)
Exemplo n.º 17
0
def condition(*children):
    return node('condition', mforest(*children))
Exemplo n.º 18
0
def test_prune_lists():
    root = node(
        'root',
        mforest(
            node('n1', mforest(node('l1', 1), node('l2', 2))),
            node(
                'n2',
                mforest(
                    node('l3', 3),
                    node(
                        'n2.1',
                        forest(
                            node('n2.1.1',
                                 mforest(node('l5', None), node('l6', 6))),
                            node('l7', 7), node('l8', 8))), node('l4', 4))),
            node(
                'n3',
                forest(
                    node('n3.1', mforest(node('l9', None), node('l10', None))),
                    node('n3.2', mforest(node('l11', None), node('l12',
                                                                 None)))))))

    expected = {
        'root': {
            'n1': {
                'l1': 1,
                'l2': 2
            },
            'n2': {
                'l3': 3,
                'n2.1': [{
                    'n2.1.1': {
                        'l6': 6
                    }
                }, {
                    'l7': 7
                }, {
                    'l8': 8
                }],
                'l4': 4
            }
        }
    }

    assert root.to_dict() == expected
Exemplo n.º 19
0
def test_dont_prune_falsy():
    root = node(
        'root',
        mforest(
            node('n1', mforest(node('l1', 1), node('l2', 2))),
            node(
                'n2',
                mforest(
                    node('l3', 3),
                    node(
                        'n2.1',
                        forest(
                            node('n2.1.1',
                                 mforest(node('l5', False), node('l6', 6))),
                            node('l7', 7), node('l8', 8))), node('l4', 4))),
            node(
                'n3',
                mforest(
                    node('n3.1', mforest(node('l9', 0), node('l10', 0.0))),
                    node('n3.2', mforest(node('l11', set()), node('l12',
                                                                  {})))))))

    expected = {
        'root': {
            'n1': {
                'l1': 1,
                'l2': 2
            },
            'n2': {
                'l3': 3,
                'n2.1': [{
                    'n2.1.1': {
                        'l5': False,
                        'l6': 6
                    }
                }, {
                    'l7': 7
                }, {
                    'l8': 8
                }],
                'l4': 4
            },
            'n3': {
                'n3.1': {
                    'l9': 0,
                    'l10': 0.0
                },
                'n3.2': {
                    'l11': set(),
                    'l12': {}
                }
            }
        }
    }

    assert root.to_dict() == expected
Exemplo n.º 20
0
def http_header(name, value):
    return node(name, value)
Exemplo n.º 21
0
def subject(*children):
    return node('subject', mforest(*children))
Exemplo n.º 22
0
def throttling(value):
    return node('throttling', value if value is not None else 1)
Exemplo n.º 23
0
def metadata(value):
    return node('metadata', value)
Exemplo n.º 24
0
def entity_type(etype):
    return node('type', etype if etype else None)