Mercurial > hg
changeset 34206:1e71dddc10a2
drawdag: add a couple of doctests to help with python3 porting
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Wed, 23 Aug 2017 10:51:26 -0400 |
parents | 6c408bfa2dab |
children | 5a1b41268b7c |
files | tests/drawdag.py tests/test-doctest.py |
diffstat | 2 files changed, 60 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/drawdag.py Wed Aug 23 01:24:01 2017 -0400 +++ b/tests/drawdag.py Wed Aug 23 10:51:26 2017 -0400 @@ -110,7 +110,52 @@ return ch in _nonpipechars def _parseasciigraph(text): - """str -> {str : [str]}. convert the ASCII graph to edges""" + r"""str -> {str : [str]}. convert the ASCII graph to edges + + >>> import pprint + >>> pprint.pprint({k: [vv for vv in v] + ... for k, v in _parseasciigraph(br''' + ... G + ... | + ... I D C F # split: B -> E, F, G + ... \ \| | # replace: C -> D -> H + ... H B E # prune: F, I + ... \|/ + ... A + ... ''').items()}) + {'A': [], + 'B': ['A'], + 'C': ['B'], + 'D': ['B'], + 'E': ['A'], + 'F': ['E'], + 'G': ['F'], + 'H': ['A'], + 'I': ['H']} + >>> pprint.pprint({k: [vv for vv in v] + ... for k, v in _parseasciigraph(br''' + ... o foo + ... |\ + ... +---o bar + ... | | | + ... | o | baz + ... | / + ... +---o d + ... | | + ... +---o c + ... | | + ... o | b + ... |/ + ... o a + ... ''').items()}) + {'a': [], + 'b': ['a'], + 'bar': ['b', 'a'], + 'baz': [], + 'c': ['b'], + 'd': ['b'], + 'foo': ['baz', 'b']} + """ lines = text.splitlines() edges = collections.defaultdict(list) # {node: []} @@ -277,6 +322,18 @@ v.remove(leaf) def _getcomments(text): + """ + >>> [s for s in _getcomments(br''' + ... G + ... | + ... I D C F # split: B -> E, F, G + ... \ \| | # replace: C -> D -> H + ... H B E # prune: F, I + ... \|/ + ... A + ... ''')] + ['split: B -> E, F, G', 'replace: C -> D -> H', 'prune: F, I'] + """ for line in text.splitlines(): if ' # ' not in line: continue