mirror of
https://github.com/vale981/releases
synced 2025-03-05 09:41:42 -05:00
Update construct_releases() to yield its LineManager too
Then expose that in util.parse_changelog()
This commit is contained in:
parent
71d213ef4f
commit
856d91e0f5
6 changed files with 16 additions and 10 deletions
|
@ -35,9 +35,10 @@ class get_doctree_(Spec):
|
||||||
|
|
||||||
|
|
||||||
class parse_changelog_(Spec):
|
class parse_changelog_(Spec):
|
||||||
def yields_releases_dict_from_changelog_path(self):
|
def yields_releases_dict_and_manager_from_changelog_path(self):
|
||||||
releases = parse_changelog(vanilla)
|
releases, manager = parse_changelog(vanilla)
|
||||||
ok_(releases)
|
ok_(releases)
|
||||||
|
ok_(manager)
|
||||||
ok_(isinstance(releases, dict))
|
ok_(isinstance(releases, dict))
|
||||||
eq_(
|
eq_(
|
||||||
set(releases.keys()),
|
set(releases.keys()),
|
||||||
|
@ -51,3 +52,7 @@ class parse_changelog_(Spec):
|
||||||
issue = releases['1.0.1'][0]
|
issue = releases['1.0.1'][0]
|
||||||
eq_(issue.type, 'bug')
|
eq_(issue.type, 'bug')
|
||||||
eq_(issue.number, '1')
|
eq_(issue.number, '1')
|
||||||
|
eq_(manager.keys(), [1])
|
||||||
|
buckets = manager[1]
|
||||||
|
eq_(len(buckets), 3)
|
||||||
|
eq_(buckets['1.0'], []) # emptied into 1.0.1
|
||||||
|
|
|
@ -529,7 +529,7 @@ def construct_releases(entries, app):
|
||||||
|
|
||||||
reorder_release_entries(releases)
|
reorder_release_entries(releases)
|
||||||
|
|
||||||
return releases
|
return releases, manager
|
||||||
|
|
||||||
|
|
||||||
def construct_nodes(releases):
|
def construct_nodes(releases):
|
||||||
|
@ -588,7 +588,7 @@ class BulletListVisitor(nodes.NodeVisitor):
|
||||||
if not self.found_changelog:
|
if not self.found_changelog:
|
||||||
self.found_changelog = True
|
self.found_changelog = True
|
||||||
# Walk + parse into release mapping
|
# 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
|
# Construct new set of nodes to replace the old, and we're done
|
||||||
node.replace_self(construct_nodes(releases))
|
node.replace_self(construct_nodes(releases))
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ def parse_changelog(path):
|
||||||
if isinstance(node, bullet_list):
|
if isinstance(node, bullet_list):
|
||||||
first_list = node
|
first_list = node
|
||||||
break
|
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):
|
def get_doctree(path):
|
||||||
|
|
|
@ -87,7 +87,7 @@ def release_list(*entries, **kwargs):
|
||||||
|
|
||||||
def releases(*entries, **kwargs):
|
def releases(*entries, **kwargs):
|
||||||
app = kwargs.pop('app', None) or make_app()
|
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):
|
def setup_issues(self):
|
||||||
self.f = f(12)
|
self.f = f(12)
|
||||||
|
|
|
@ -159,7 +159,7 @@ class organization(Spec):
|
||||||
)
|
)
|
||||||
# Modify 1.0.1 release to be speshul
|
# Modify 1.0.1 release to be speshul
|
||||||
changelog[0][0].append(Text("2, 3"))
|
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
|
# 1.0.1 includes just 2 and 3, not bug 1
|
||||||
one_0_1 = rendered[3]['entries']
|
one_0_1 = rendered[3]['entries']
|
||||||
one_1_1 = rendered[2]['entries']
|
one_1_1 = rendered[2]['entries']
|
||||||
|
@ -184,7 +184,7 @@ class organization(Spec):
|
||||||
changelog = release_list('1.1.0', f1, f2)
|
changelog = release_list('1.1.0', f1, f2)
|
||||||
# Ensure that 1.1.0 specifies feature 2
|
# Ensure that 1.1.0 specifies feature 2
|
||||||
changelog[0][0].append(Text("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
|
# 1.1.0 should have feature 2 only
|
||||||
assert f2 in rendered['1.1.0']
|
assert f2 in rendered['1.1.0']
|
||||||
assert f1 not 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)
|
changelog = release_list('1.0.1', b1, b2)
|
||||||
# Ensure that 1.0.1 specifies bug 2
|
# Ensure that 1.0.1 specifies bug 2
|
||||||
changelog[0][0].append(Text('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
|
# 1.0.1 should have bug 2 only
|
||||||
assert b2 in rendered[1]['entries']
|
assert b2 in rendered[1]['entries']
|
||||||
assert b1 not in rendered[1]['entries']
|
assert b1 not in rendered[1]['entries']
|
||||||
|
|
|
@ -49,7 +49,7 @@ class presentation(Spec):
|
||||||
release('1.0.2', app=app),
|
release('1.0.2', app=app),
|
||||||
entry(b(15, app=app)),
|
entry(b(15, app=app)),
|
||||||
release('1.0.0'),
|
release('1.0.0'),
|
||||||
], app=app))
|
], app=app)[0])
|
||||||
# Shorthand for "I'll do my own asserts"
|
# Shorthand for "I'll do my own asserts"
|
||||||
if expected is None:
|
if expected is None:
|
||||||
return nodes
|
return nodes
|
||||||
|
|
Loading…
Add table
Reference in a new issue