How to use the pglast.printer.get_printer_for_node_tag function in pglast

To help you get started, we’ve selected a few pglast examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github lelit / pglast / tests / test_printer.py View on Github external
def test_registry():
    with pytest.raises(NotImplementedError):
        printer.get_printer_for_node_tag(None, 'non_existing')

    with pytest.raises(ValueError):
        @printer.node_printer()
        def tag(node, output):
            pass

    with pytest.raises(ValueError):
        @printer.node_printer('one', 'two', 'three')
        def tag2(node, output):
            pass

    try:
        @printer.node_printer('test_tag1')
        def tag1(node, output):
            pass
github lelit / pglast / tests / test_printer.py View on Github external
assert printer.get_printer_for_node_tag(None, 'test_tag1') is tag2

        @printer.node_printer('test_tag_3')
        def generic_tag3(node, output):
            pass

        @printer.node_printer('test_tag_1', 'test_tag_3')
        def specific_tag3(node, output):
            pass

        @printer.node_printer(('test_tag_a', 'test_tag_b'), 'test_tag_3')
        def specific_tag4(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('Foo', 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('test_tag_1', 'test_tag_3') is specific_tag3
        assert printer.get_printer_for_node_tag('test_tag_a', 'test_tag_3') is specific_tag4
        assert printer.get_printer_for_node_tag('test_tag_b', 'test_tag_3') is specific_tag4
    finally:
        printer.NODE_PRINTERS.pop('test_tag1', None)
github lelit / pglast / tests / test_printer.py View on Github external
def generic_tag3(node, output):
            pass

        @printer.node_printer('test_tag_1', 'test_tag_3')
        def specific_tag3(node, output):
            pass

        @printer.node_printer(('test_tag_a', 'test_tag_b'), 'test_tag_3')
        def specific_tag4(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('Foo', 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('test_tag_1', 'test_tag_3') is specific_tag3
        assert printer.get_printer_for_node_tag('test_tag_a', 'test_tag_3') is specific_tag4
        assert printer.get_printer_for_node_tag('test_tag_b', 'test_tag_3') is specific_tag4
    finally:
        printer.NODE_PRINTERS.pop('test_tag1', None)
github lelit / pglast / tests / test_printer.py View on Github external
with pytest.raises(ValueError):
        @printer.node_printer()
        def tag(node, output):
            pass

    with pytest.raises(ValueError):
        @printer.node_printer('one', 'two', 'three')
        def tag2(node, output):
            pass

    try:
        @printer.node_printer('test_tag1')
        def tag1(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag1') is tag1

        with pytest.raises(printer.PrinterAlreadyPresentError):
            @printer.node_printer('test_tag1')
            def tag3(node, output):
                pass

        @printer.node_printer('test_tag1', override=True)  # noqa
        def tag2(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag1') is tag2

        @printer.node_printer('test_tag_3')
        def generic_tag3(node, output):
            pass
github lelit / pglast / tests / test_printer.py View on Github external
        @printer.node_printer('test_tag_3')
        def generic_tag3(node, output):
            pass

        @printer.node_printer('test_tag_1', 'test_tag_3')
        def specific_tag3(node, output):
            pass

        @printer.node_printer(('test_tag_a', 'test_tag_b'), 'test_tag_3')
        def specific_tag4(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('Foo', 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('test_tag_1', 'test_tag_3') is specific_tag3
        assert printer.get_printer_for_node_tag('test_tag_a', 'test_tag_3') is specific_tag4
        assert printer.get_printer_for_node_tag('test_tag_b', 'test_tag_3') is specific_tag4
    finally:
        printer.NODE_PRINTERS.pop('test_tag1', None)
github lelit / pglast / tests / test_printer.py View on Github external
assert printer.get_printer_for_node_tag(None, 'test_tag1') is tag2

        @printer.node_printer('test_tag_3')
        def generic_tag3(node, output):
            pass

        @printer.node_printer('test_tag_1', 'test_tag_3')
        def specific_tag3(node, output):
            pass

        @printer.node_printer(('test_tag_a', 'test_tag_b'), 'test_tag_3')
        def specific_tag4(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('Foo', 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('test_tag_1', 'test_tag_3') is specific_tag3
        assert printer.get_printer_for_node_tag('test_tag_a', 'test_tag_3') is specific_tag4
        assert printer.get_printer_for_node_tag('test_tag_b', 'test_tag_3') is specific_tag4
    finally:
        printer.NODE_PRINTERS.pop('test_tag1', None)
github lelit / pglast / tests / test_printer.py View on Github external
        @printer.node_printer('test_tag_3')
        def generic_tag3(node, output):
            pass

        @printer.node_printer('test_tag_1', 'test_tag_3')
        def specific_tag3(node, output):
            pass

        @printer.node_printer(('test_tag_a', 'test_tag_b'), 'test_tag_3')
        def specific_tag4(node, output):
            pass

        assert printer.get_printer_for_node_tag(None, 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('Foo', 'test_tag_3') is generic_tag3
        assert printer.get_printer_for_node_tag('test_tag_1', 'test_tag_3') is specific_tag3
        assert printer.get_printer_for_node_tag('test_tag_a', 'test_tag_3') is specific_tag4
        assert printer.get_printer_for_node_tag('test_tag_b', 'test_tag_3') is specific_tag4
    finally:
        printer.NODE_PRINTERS.pop('test_tag1', None)