예제 #1
0
def main(argv):
    input_file_stream = FileStream(argv[1])
    lexer = tnsnamesLexer(input_file_stream)
    stream = CommonTokenStream(lexer)
    parser = tnsnamesParser(stream)
    tree = parser.tnsnames()

    listener = AliasFinder()
    walker = ParseTreeWalker()
    walker.walk(listener, tree)
    for alias in listener.get_aliases:
        print(alias)
예제 #2
0
    def test_format_single_line(self):
        input_file_stream = FileStream(self._tnsnames_file)

        lexer = tnsnamesLexer(input_file_stream)
        stream = CommonTokenStream(lexer)
        parser = tnsnamesParser(stream)
        tree = parser.tnsnames()

        listener = TnsnameLineFormatter()
        walker = ParseTreeWalker()
        walker.walk(listener, tree)
        assert len(listener.get_lines) == 6
예제 #3
0
    def test_bad_tnsnames_file(self):
        tnsnames_file = '{0}/testFiles/tnsnames_false.ora'.format(self._script_path)
        input_file_stream = FileStream(tnsnames_file)
        errorListener = TnsErrorListenerException()

        lexer = tnsnamesLexer(input_file_stream)
        stream = CommonTokenStream(lexer)
        parser = tnsnamesParser(stream)
        parser._listeners.clear()
        parser.addErrorListener(errorListener)
        with self.assertRaisesRegexp(Exception, "Syntax error") as cm:
            tree = parser.tnsnames()
예제 #4
0
    def test_get_aliases(self):
        input_file_stream = FileStream(self._tnsnames_file)

        lexer = tnsnamesLexer(input_file_stream)
        stream = CommonTokenStream(lexer)
        parser = tnsnamesParser(stream)
        tree = parser.tnsnames()

        listener = AliasFinder()
        walker = ParseTreeWalker()
        walker.walk(listener, tree)
        expected_aliases = ['LSNR_FRED', 'LSNR_WILMA', 'lsnr_barney', 'alias_1', 'alias_2.world',
                            'alias3.dunbar-it.co.uk', 'someother_alias', 'someother_alias2']
        self.assertListEqual(listener.get_aliases, expected_aliases)
예제 #5
0
    def test_get_aliases(self):
        input_file_stream = FileStream(self._tnsnames_file)

        lexer = tnsnamesLexer(input_file_stream)
        stream = CommonTokenStream(lexer)
        parser = tnsnamesParser(stream)
        tree = parser.tnsnames()

        listener = AliasFinder()
        walker = ParseTreeWalker()
        walker.walk(listener, tree)
        expected_aliases = [
            'LSNR_FRED', 'LSNR_WILMA', 'lsnr_barney', 'alias_1',
            'alias_2.world', 'alias3.dunbar-it.co.uk', 'someother_alias',
            'someother_alias2'
        ]
        self.assertListEqual(listener.get_aliases, expected_aliases)
예제 #6
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("tnsnamesFile", type=str, help="the filename of the tnsnames file to be formatted")
    parser.add_argument("-f", "--format", type=str, help="format to be applied",
                        default=Format.oracle.name)
    args = parser.parse_args()
    if args.format == Format.oracle.name:
        _listener = TnsnameOraStyleFormatter()
    else:
        _listener = TnsnameLineFormatter()

    input_file_stream = FileStream(args.tnsnamesFile)
    lexer = tnsnamesLexer(input_file_stream)
    stream = CommonTokenStream(lexer)
    parser = tnsnamesParser(stream)
    tree = parser.tnsnames()

    walker = ParseTreeWalker()
    walker.walk(_listener, tree)

    for line in _listener.get_lines:
        print(line)