Mercurial > hg
annotate tests/svnxml.py @ 45933:2960b7fac966
setup: copy pythonXY.dll next to the hg.exe wrapper when building
This avoids the problem of having the newly built binary complaining that it
can't find the DLL. There is an option in the python.org installer to add the
python install to PATH (which defaulted to "on" with py2, and therefore was not
an issue up to this point), but that makes switching between python versions
harder.
This shouldn't be an issue with the PyOxidizer binary, but that current has
issues running some of the tests, and took noticeably longer to build last time
I tried it.
Differential Revision: https://phab.mercurial-scm.org/D9362
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 21 Nov 2020 16:20:49 -0500 |
parents | 2372284d9457 |
children | 7525e77b5eac |
rev | line source |
---|---|
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
1 # Read the output of a "svn log --xml" command on stdin, parse it and |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
2 # print a subset of attributes common to all svn versions tested by |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
3 # hg. |
28947
812eb3b7dc43
py3: use absolute_import in svnxml.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
16512
diff
changeset
|
4 from __future__ import absolute_import |
812eb3b7dc43
py3: use absolute_import in svnxml.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
16512
diff
changeset
|
5 import sys |
812eb3b7dc43
py3: use absolute_import in svnxml.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
16512
diff
changeset
|
6 import xml.dom.minidom |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
7 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
8 |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
9 def xmltext(e): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
10 return ''.join(c.data for c in e.childNodes if c.nodeType == c.TEXT_NODE) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
11 |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
12 |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
13 def parseentry(entry): |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
14 e = {} |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
15 e['revision'] = entry.getAttribute('revision') |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
16 e['author'] = xmltext(entry.getElementsByTagName('author')[0]) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
17 e['msg'] = xmltext(entry.getElementsByTagName('msg')[0]) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
18 e['paths'] = [] |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
19 paths = entry.getElementsByTagName('paths') |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
20 if paths: |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
21 paths = paths[0] |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
22 for p in paths.getElementsByTagName('path'): |
41326
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
23 action = p.getAttribute('action').encode('utf-8') |
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
24 path = xmltext(p).encode('utf-8') |
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
25 frompath = p.getAttribute('copyfrom-path').encode('utf-8') |
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
26 fromrev = p.getAttribute('copyfrom-rev').encode('utf-8') |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
27 e['paths'].append((path, action, frompath, fromrev)) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
28 return e |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
29 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
30 |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
31 def parselog(data): |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
32 entries = [] |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
33 doc = xml.dom.minidom.parseString(data) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
34 for e in doc.getElementsByTagName('logentry'): |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
35 entries.append(parseentry(e)) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
36 return entries |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
37 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
38 |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
39 def printentries(entries): |
40216
c17d73bf6a4d
py3: use sys.stdout.buffer for binary output in tests/svnxml.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
28947
diff
changeset
|
40 try: |
c17d73bf6a4d
py3: use sys.stdout.buffer for binary output in tests/svnxml.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
28947
diff
changeset
|
41 fp = sys.stdout.buffer |
c17d73bf6a4d
py3: use sys.stdout.buffer for binary output in tests/svnxml.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
28947
diff
changeset
|
42 except AttributeError: |
c17d73bf6a4d
py3: use sys.stdout.buffer for binary output in tests/svnxml.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
28947
diff
changeset
|
43 fp = sys.stdout |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
44 for e in entries: |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
45 for k in ('revision', 'author', 'msg'): |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
46 fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8')) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
47 for path, action, fpath, frev in sorted(e['paths']): |
41326
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
48 frominfo = b'' |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
49 if frev: |
41326
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
50 frominfo = b' (from %s@%s)' % (fpath, frev) |
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
51 p = b' %s %s%s\n' % (action, path, frominfo) |
7c54357be2ae
tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40216
diff
changeset
|
52 fp.write(p) |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
53 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41326
diff
changeset
|
54 |
16512
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
55 if __name__ == '__main__': |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
56 data = sys.stdin.read() |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
57 entries = parselog(data) |
c58bdecdb800
test-convert-svn-sink: add helper to smooth svn xml output
Patrick Mezard <patrick@mezard.eu>
parents:
diff
changeset
|
58 printentries(entries) |