Update construct_releases() to yield its LineManager too

Then expose that in util.parse_changelog()
This commit is contained in:
Jeff Forcier 2016-10-10 11:10:02 -07:00
parent 71d213ef4f
commit 856d91e0f5
6 changed files with 16 additions and 10 deletions

View file

@ -35,9 +35,10 @@ class get_doctree_(Spec):
class parse_changelog_(Spec):
def yields_releases_dict_from_changelog_path(self):
releases = parse_changelog(vanilla)
def yields_releases_dict_and_manager_from_changelog_path(self):
releases, manager = parse_changelog(vanilla)
ok_(releases)
ok_(manager)
ok_(isinstance(releases, dict))
eq_(
set(releases.keys()),
@ -51,3 +52,7 @@ class parse_changelog_(Spec):
issue = releases['1.0.1'][0]
eq_(issue.type, 'bug')
eq_(issue.number, '1')
eq_(manager.keys(), [1])
buckets = manager[1]
eq_(len(buckets), 3)
eq_(buckets['1.0'], []) # emptied into 1.0.1

View file

@ -529,7 +529,7 @@ def construct_releases(entries, app):
reorder_release_entries(releases)
return releases
return releases, manager
def construct_nodes(releases):
@ -588,7 +588,7 @@ class BulletListVisitor(nodes.NodeVisitor):
if not self.found_changelog:
self.found_changelog = True
# Walk + parse into release mapping
releases = construct_releases(node.children, self.app)
releases, _ = construct_releases(node.children, self.app)
# Construct new set of nodes to replace the old, and we're done
node.replace_self(construct_nodes(releases))

View file

@ -43,7 +43,8 @@ def parse_changelog(path):
if isinstance(node, bullet_list):
first_list = node
break
return changelog2dict(construct_releases(first_list.children, app))
releases, manager = construct_releases(first_list.children, app)
return changelog2dict(releases), manager
def get_doctree(path):

View file

@ -87,7 +87,7 @@ def release_list(*entries, **kwargs):
def releases(*entries, **kwargs):
app = kwargs.pop('app', None) or make_app()
return construct_releases(release_list(*entries, **kwargs), app)
return construct_releases(release_list(*entries, **kwargs), app)[0]
def setup_issues(self):
self.f = f(12)

View file

@ -159,7 +159,7 @@ class organization(Spec):
)
# Modify 1.0.1 release to be speshul
changelog[0][0].append(Text("2, 3"))
rendered = construct_releases(changelog, make_app())
rendered, _ = construct_releases(changelog, make_app())
# 1.0.1 includes just 2 and 3, not bug 1
one_0_1 = rendered[3]['entries']
one_1_1 = rendered[2]['entries']
@ -184,7 +184,7 @@ class organization(Spec):
changelog = release_list('1.1.0', f1, f2)
# Ensure that 1.1.0 specifies feature 2
changelog[0][0].append(Text("2"))
rendered = changelog2dict(construct_releases(changelog, make_app()))
rendered = changelog2dict(construct_releases(changelog, make_app())[0])
# 1.1.0 should have feature 2 only
assert f2 in rendered['1.1.0']
assert f1 not in rendered['1.1.0']
@ -199,7 +199,7 @@ class organization(Spec):
changelog = release_list('1.0.1', b1, b2)
# Ensure that 1.0.1 specifies bug 2
changelog[0][0].append(Text('2'))
rendered = construct_releases(changelog, make_app())
rendered, _ = construct_releases(changelog, make_app())
# 1.0.1 should have bug 2 only
assert b2 in rendered[1]['entries']
assert b1 not in rendered[1]['entries']

View file

@ -49,7 +49,7 @@ class presentation(Spec):
release('1.0.2', app=app),
entry(b(15, app=app)),
release('1.0.0'),
], app=app))
], app=app)[0])
# Shorthand for "I'll do my own asserts"
if expected is None:
return nodes