| #!/usr/bin/env python |
| # |
| # gen-py-errors.py: Generate a python module which maps error names to numbers. |
| # (The purpose being easier writing of the python tests.) |
| # |
| # ==================================================================== |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # ==================================================================== |
| # |
| # |
| # Meant to be run from the root of a Subversion working copy. If anybody |
| # wants to do some path magic to improve that use, feel free. |
| |
| import sys, os |
| sys.path.append(os.path.join('subversion', 'bindings', 'swig', |
| 'python', 'tests')) |
| |
| |
| import setup_path |
| |
| header = '''#!/usr/bin/env python |
| ### This file automatically generated by tools/dev/gen-py-error.py, |
| ### which see for more information |
| ### |
| ### It is versioned for convenience. |
| |
| ''' |
| |
| |
| def write_output(errs, filename): |
| out = open(filename, 'w') |
| out.write(header) |
| |
| for name, val in errs: |
| out.write('%s = %d\n' % (name, val)) |
| |
| out.close() |
| |
| |
| def main(output_filename): |
| import core |
| |
| errs = [e for e in dir(core.svn.core) if e.startswith('SVN_ERR_')] |
| codes = [] |
| for e in errs: |
| codes.append((e[8:], getattr(core.svn.core, e))) |
| write_output(codes, output_filename) |
| |
| |
| if __name__ == '__main__': |
| main(os.path.join('subversion', 'tests', 'cmdline', 'svntest', 'err.py')) |