summaryrefslogtreecommitdiff
path: root/tools/dev/gen-py-errors.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dev/gen-py-errors.py')
-rwxr-xr-xtools/dev/gen-py-errors.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/dev/gen-py-errors.py b/tools/dev/gen-py-errors.py
new file mode 100755
index 0000000..6204589
--- /dev/null
+++ b/tools/dev/gen-py-errors.py
@@ -0,0 +1,66 @@
+#!/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'))