use Config instead of individual args with parameters

Instead of passing an increasing number of arguments around through the
system, set up the Config instance correctly and use it.

Also make the reporoot a required argument for Config, and let the
release note subdirectory be an optional argument with a default.

Change-Id: I5fc6358bb496f44e3fd68c89ad71b06067dd7425
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann
2016-07-22 17:37:30 -04:00
parent 0355be32b4
commit c022901e2e
13 changed files with 92 additions and 232 deletions

View File

@@ -17,16 +17,10 @@ import yaml
from reno import loader from reno import loader
from reno import scanner from reno import scanner
from reno import utils
def build_cache_db(reporoot, notesdir, branch, collapse_pre_releases, def build_cache_db(conf, versions_to_include):
versions_to_include, earliest_version): notes = scanner.get_notes_by_version(conf)
notes = scanner.get_notes_by_version(
reporoot, notesdir, branch,
collapse_pre_releases=collapse_pre_releases,
earliest_version=earliest_version,
)
# Default to including all versions returned by the scanner. # Default to including all versions returned by the scanner.
if not versions_to_include: if not versions_to_include:
@@ -38,7 +32,7 @@ def build_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
for version in versions_to_include: for version in versions_to_include:
for filename, sha in notes[version]: for filename, sha in notes[version]:
body = scanner.get_file_at_commit( body = scanner.get_file_at_commit(
reporoot, conf.reporoot,
filename, filename,
sha, sha,
) )
@@ -60,8 +54,7 @@ def build_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
return cache return cache
def write_cache_db(reporoot, notesdir, branch, collapse_pre_releases, def write_cache_db(conf, versions_to_include,
versions_to_include, earliest_version,
outfilename=None): outfilename=None):
"""Create a cache database file for the release notes data. """Create a cache database file for the release notes data.
@@ -82,19 +75,15 @@ def write_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
stream = open(outfilename, 'w') stream = open(outfilename, 'w')
close_stream = True close_stream = True
else: else:
outfilename = loader.get_cache_filename(reporoot, notesdir) outfilename = loader.get_cache_filename(conf.reporoot, conf.notespath)
if not os.path.exists(os.path.dirname(outfilename)): if not os.path.exists(os.path.dirname(outfilename)):
os.makedirs(os.path.dirname(outfilename)) os.makedirs(os.path.dirname(outfilename))
stream = open(outfilename, 'w') stream = open(outfilename, 'w')
close_stream = True close_stream = True
try: try:
cache = build_cache_db( cache = build_cache_db(
reporoot=reporoot, conf,
notesdir=notesdir,
branch=branch,
collapse_pre_releases=collapse_pre_releases,
versions_to_include=versions_to_include, versions_to_include=versions_to_include,
earliest_version=earliest_version,
) )
yaml.safe_dump( yaml.safe_dump(
cache, cache,
@@ -110,15 +99,9 @@ def write_cache_db(reporoot, notesdir, branch, collapse_pre_releases,
def cache_cmd(args, conf): def cache_cmd(args, conf):
"Generates a release notes cache" "Generates a release notes cache"
reporoot = conf.reporoot
notesdir = utils.get_notes_dir(conf)
write_cache_db( write_cache_db(
reporoot=reporoot, conf=conf,
notesdir=notesdir,
branch=conf.branch,
collapse_pre_releases=conf.collapse_pre_releases,
versions_to_include=args.version, versions_to_include=args.version,
earliest_version=conf.earliest_version,
outfilename=args.output, outfilename=args.output,
) )
return return

View File

@@ -14,6 +14,8 @@ import os.path
import yaml import yaml
from reno import defaults
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@@ -22,9 +24,6 @@ class Config(object):
_FILENAME = 'config.yaml' _FILENAME = 'config.yaml'
_OPTS = { _OPTS = {
# The root directory of the git repository to scan.
'reporoot': './',
# The notes subdirectory within the relnotesdir where the # The notes subdirectory within the relnotesdir where the
# notes live. # notes live.
'notesdir': 'notes', 'notesdir': 'notes',
@@ -51,18 +50,23 @@ class Config(object):
except KeyError: except KeyError:
raise ValueError('unknown option name %r' % (opt,)) raise ValueError('unknown option name %r' % (opt,))
def __init__(self, relnotesdir): def __init__(self, reporoot, relnotesdir=defaults.RELEASE_NOTES_SUBDIR):
"""Instantiate a Config object """Instantiate a Config object
:param str reporoot:
The root directory of the repository.
:param str relnotesdir: :param str relnotesdir:
The directory containing release notes. The directory containing release notes. Defaults to
'releasenotes'.
""" """
self.reporoot = reporoot
self.relnotesdir = relnotesdir self.relnotesdir = relnotesdir
# Initialize attributes from the defaults. # Initialize attributes from the defaults.
self.override(**self._OPTS) self.override(**self._OPTS)
self._filename = os.path.join(relnotesdir, self._FILENAME) self._filename = os.path.join(self.reporoot, relnotesdir,
self._FILENAME)
self._contents = {} self._contents = {}
self._load_file() self._load_file()

View File

@@ -23,14 +23,7 @@ def list_cmd(args, conf):
"List notes files based on query arguments" "List notes files based on query arguments"
LOG.debug('starting list') LOG.debug('starting list')
reporoot = conf.reporoot reporoot = conf.reporoot
collapse = conf.collapse_pre_releases ldr = loader.Loader(conf)
ldr = loader.Loader(
reporoot=reporoot,
branch=conf.branch,
collapse_pre_releases=collapse,
earliest_version=conf.earliest_version,
conf=conf,
)
if args.version: if args.version:
versions = args.version versions = args.version
else: else:

View File

@@ -28,11 +28,8 @@ def get_cache_filename(reporoot, notesdir):
class Loader(object): class Loader(object):
"Load the release notes for a given repository." "Load the release notes for a given repository."
def __init__(self, reporoot, branch=None, def __init__(self, conf,
collapse_pre_releases=True, ignore_cache=False):
earliest_version=None,
ignore_cache=False,
conf=None):
"""Initialize a Loader. """Initialize a Loader.
The versions are presented in reverse chronological order. The versions are presented in reverse chronological order.
@@ -40,31 +37,24 @@ class Loader(object):
Notes files are associated with the earliest version for which Notes files are associated with the earliest version for which
they were available, regardless of whether they changed later. they were available, regardless of whether they changed later.
:param reporoot: Path to the root of the git repository.
:type reporoot: str
:param branch: The name of the branch to scan. Defaults to current.
:type branch: str
:param collapse_pre_releases: When true, merge pre-release versions
into the final release, if it is present.
:type collapse_pre_releases: bool
:param earliest_version: The oldest version to include.
:type earliest_version: str
:param ignore_cache: Do not load a cache file if it is present.
:type ignore_cache: bool
:param conf: Parsed configuration from file :param conf: Parsed configuration from file
:type conf: reno.config.Config :type conf: reno.config.Config
:param ignore_cache: Do not load a cache file if it is present.
:type ignore_cache: bool
""" """
self._reporoot = reporoot
self._notespath = conf.notespath
self._branch = branch
self._config = conf self._config = conf
self._collapse_pre_releases = self._config.collapse_pre_releases
self._earliest_version = self._config.earliest_version
self._ignore_cache = ignore_cache self._ignore_cache = ignore_cache
self._reporoot = conf.reporoot
self._notespath = conf.notespath
self._branch = conf.branch
self._collapse_pre_releases = conf.collapse_pre_releases
self._earliest_version = conf.earliest_version
self._cache = None self._cache = None
self._scanner_output = None self._scanner_output = None
self._cache_filename = get_cache_filename(reporoot, self._notespath) self._cache_filename = get_cache_filename(self._reporoot,
self._notespath)
self._load_data() self._load_data()
@@ -85,13 +75,7 @@ class Loader(object):
for n in self._cache['notes'] for n in self._cache['notes']
} }
else: else:
self._scanner_output = scanner.get_notes_by_version( self._scanner_output = scanner.get_notes_by_version(self._config)
reporoot=self._reporoot,
notesdir=self._notespath,
branch=self._branch,
collapse_pre_releases=self._collapse_pre_releases,
earliest_version=self._earliest_version,
)
@property @property
def versions(self): def versions(self):

View File

@@ -136,7 +136,7 @@ def main(argv=sys.argv[1:]):
do_cache.set_defaults(func=cache.cache_cmd) do_cache.set_defaults(func=cache.cache_cmd)
args = parser.parse_args(argv) args = parser.parse_args(argv)
conf = config.Config(args.relnotesdir) conf = config.Config(args.reporoot, args.relnotesdir)
conf.override_from_parsed_args(args) conf.override_from_parsed_args(args)
logging.basicConfig( logging.basicConfig(

View File

@@ -18,15 +18,7 @@ from reno import loader
def report_cmd(args, conf): def report_cmd(args, conf):
"Generates a release notes report" "Generates a release notes report"
reporoot = conf.reporoot ldr = loader.Loader(conf)
collapse = conf.collapse_pre_releases
ldr = loader.Loader(
reporoot=reporoot,
branch=conf.branch,
collapse_pre_releases=collapse,
earliest_version=conf.earliest_version,
conf=conf,
)
if args.version: if args.version:
versions = args.version versions = args.version
else: else:

View File

@@ -149,9 +149,7 @@ def _get_version_tags_on_branch(reporoot, branch):
return tags return tags
def get_notes_by_version(reporoot, notesdir, branch=None, def get_notes_by_version(conf):
collapse_pre_releases=True,
earliest_version=None):
"""Return an OrderedDict mapping versions to lists of notes files. """Return an OrderedDict mapping versions to lists of notes files.
The versions are presented in reverse chronological order. The versions are presented in reverse chronological order.
@@ -161,15 +159,12 @@ def get_notes_by_version(reporoot, notesdir, branch=None,
:param reporoot: Path to the root of the git repository. :param reporoot: Path to the root of the git repository.
:type reporoot: str :type reporoot: str
:param notesdir: The directory under *reporoot* with the release notes.
:type notesdir: str
:param branch: The name of the branch to scan. Defaults to current.
:type branch: str
:param collapse_pre_releases: When true, merge pre-release versions
into the final release, if it is present.
:type collapse_pre_releases: bool
""" """
reporoot = conf.reporoot
notesdir = conf.notespath
branch = conf.branch
LOG.debug('scanning %s/%s (branch=%s)' % (reporoot, notesdir, branch)) LOG.debug('scanning %s/%s (branch=%s)' % (reporoot, notesdir, branch))
# Determine all of the tags known on the branch, in their date # Determine all of the tags known on the branch, in their date
@@ -324,7 +319,7 @@ def get_notes_by_version(reporoot, notesdir, branch=None,
# Combine pre-releases into the final release, if we are told to # Combine pre-releases into the final release, if we are told to
# and the final release exists. # and the final release exists.
if collapse_pre_releases: if conf.collapse_pre_releases:
collapsing = files_and_tags collapsing = files_and_tags
files_and_tags = collections.OrderedDict() files_and_tags = collections.OrderedDict()
for ov in versions_by_date: for ov in versions_by_date:
@@ -370,7 +365,7 @@ def get_notes_by_version(reporoot, notesdir, branch=None,
trimmed[ov] = sorted(files_and_tags[ov]) trimmed[ov] = sorted(files_and_tags[ov])
# If we have been told to stop at a version, we can do that # If we have been told to stop at a version, we can do that
# now. # now.
if earliest_version and ov == earliest_version: if conf.earliest_version and ov == conf.earliest_version:
break break
LOG.debug('[reno] found %d versions and %d files', LOG.debug('[reno] found %d versions and %d files',

View File

@@ -51,10 +51,8 @@ class ReleaseNotesDirective(rst.Directive):
reporoot = os.path.abspath(reporoot_opt) reporoot = os.path.abspath(reporoot_opt)
relnotessubdir = self.options.get('relnotessubdir', relnotessubdir = self.options.get('relnotessubdir',
defaults.RELEASE_NOTES_SUBDIR) defaults.RELEASE_NOTES_SUBDIR)
conf = config.Config(relnotessubdir) conf = config.Config(reporoot, relnotessubdir)
opt_overrides = { opt_overrides = {}
'reporoot': reporoot,
}
if 'notesdir' in self.options: if 'notesdir' in self.options:
opt_overrides['notesdir'] = self.options.get('notesdir') opt_overrides['notesdir'] = self.options.get('notesdir')
version_opt = self.options.get('version') version_opt = self.options.get('version')
@@ -72,13 +70,7 @@ class ReleaseNotesDirective(rst.Directive):
(os.path.join(conf.reporoot, notesdir), (os.path.join(conf.reporoot, notesdir),
branch or 'current branch')) branch or 'current branch'))
ldr = loader.Loader( ldr = loader.Loader(conf)
reporoot=conf.reporoot,
branch=branch,
collapse_pre_releases=conf.collapse_pre_releases,
earliest_version=conf.earliest_version,
conf=conf,
)
if version_opt is not None: if version_opt is not None:
versions = [ versions = [
v.strip() v.strip()

View File

@@ -18,6 +18,7 @@ import mock
from oslotest import mockpatch from oslotest import mockpatch
from reno import cache from reno import cache
from reno import config
from reno.tests import base from reno.tests import base
@@ -53,17 +54,14 @@ class TestCache(base.TestCase):
mockpatch.Patch('reno.scanner.get_file_at_commit', mockpatch.Patch('reno.scanner.get_file_at_commit',
new=self._get_note_body) new=self._get_note_body)
) )
self.c = config.Config('.')
def test_build_cache_db(self): def test_build_cache_db(self):
with mock.patch('reno.scanner.get_notes_by_version') as gnbv: with mock.patch('reno.scanner.get_notes_by_version') as gnbv:
gnbv.return_value = self.scanner_output gnbv.return_value = self.scanner_output
db = cache.build_cache_db( db = cache.build_cache_db(
reporoot=None, self.c,
notesdir=None,
branch=None,
collapse_pre_releases=True,
versions_to_include=[], versions_to_include=[],
earliest_version=None,
) )
expected = { expected = {
'notes': [ 'notes': [

View File

@@ -78,7 +78,10 @@ collapse_pre_releases: false
self.assertEqual(1, logger.call_count) self.assertEqual(1, logger.call_count)
def test_load_file(self): def test_load_file(self):
config_path = self.tempdir.join(config.Config._FILENAME) rn_path = self.tempdir.join('releasenotes')
os.mkdir(rn_path)
config_path = self.tempdir.join('releasenotes/' +
config.Config._FILENAME)
with open(config_path, 'w') as fd: with open(config_path, 'w') as fd:
fd.write(self.EXAMPLE_CONFIG) fd.write(self.EXAMPLE_CONFIG)
self.addCleanup(os.unlink, config_path) self.addCleanup(os.unlink, config_path)

View File

@@ -59,14 +59,12 @@ class TestFormatter(base.TestCase):
'file-contents': self.note_bodies 'file-contents': self.note_bodies
} }
self.c = config.Config('reporoot')
with mock.patch('reno.loader.Loader._load_data', _load): with mock.patch('reno.loader.Loader._load_data', _load):
self.ldr = loader.Loader( self.ldr = loader.Loader(
reporoot='reporoot', self.c,
branch=None,
collapse_pre_releases=None,
earliest_version=None,
ignore_cache=False, ignore_cache=False,
conf=config.Config('reporoot/releasenotes'),
) )
def test_with_title(self): def test_with_title(self):

View File

@@ -41,6 +41,7 @@ class TestValidate(base.TestCase):
level=logging.WARNING, level=logging.WARNING,
) )
) )
self.c = config.Config('reporoot')
def _make_loader(self, note_bodies): def _make_loader(self, note_bodies):
def _load(ldr): def _load(ldr):
@@ -51,12 +52,8 @@ class TestValidate(base.TestCase):
with mock.patch('reno.loader.Loader._load_data', _load): with mock.patch('reno.loader.Loader._load_data', _load):
return loader.Loader( return loader.Loader(
reporoot='reporoot', self.c,
branch=None,
collapse_pre_releases=None,
earliest_version=None,
ignore_cache=False, ignore_cache=False,
conf=config.Config('reporoot/releasenotes'),
) )
def test_prelude_list(self): def test_prelude_list(self):

View File

@@ -23,6 +23,7 @@ import fixtures
import mock import mock
from testtools.content import text_content from testtools.content import text_content
from reno import config
from reno import create from reno import create
from reno import scanner from reno import scanner
from reno.tests import base from reno.tests import base
@@ -179,10 +180,7 @@ class Base(base.TestCase):
self.useFixture(fixtures.NestedTempfile()) self.useFixture(fixtures.NestedTempfile())
self.temp_dir = self.useFixture(fixtures.TempDir()).path self.temp_dir = self.useFixture(fixtures.TempDir()).path
self.reporoot = os.path.join(self.temp_dir, 'reporoot') self.reporoot = os.path.join(self.temp_dir, 'reporoot')
self.notesdir = os.path.join(self.reporoot, self.c = config.Config(self.reporoot)
'releasenotes',
'notes',
)
self._git_setup() self._git_setup()
self._counter = itertools.count(1) self._counter = itertools.count(1)
self.get_note_num = lambda: next(self._counter) self.get_note_num = lambda: next(self._counter)
@@ -192,10 +190,7 @@ class BasicTest(Base):
def test_non_python_no_tags(self): def test_non_python_no_tags(self):
filename = self._add_notes_file() filename = self._add_notes_file()
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -208,10 +203,7 @@ class BasicTest(Base):
def test_python_no_tags(self): def test_python_no_tags(self):
self._make_python_package() self._make_python_package()
filename = self._add_notes_file() filename = self._add_notes_file()
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -225,10 +217,7 @@ class BasicTest(Base):
filename = self._add_notes_file() filename = self._add_notes_file()
self._add_other_file('not-a-release-note.txt') self._add_other_file('not-a-release-note.txt')
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -241,10 +230,7 @@ class BasicTest(Base):
def test_note_commit_tagged(self): def test_note_commit_tagged(self):
filename = self._add_notes_file() filename = self._add_notes_file()
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -258,10 +244,7 @@ class BasicTest(Base):
self._make_python_package() self._make_python_package()
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
filename = self._add_notes_file() filename = self._add_notes_file()
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -276,10 +259,7 @@ class BasicTest(Base):
self._add_other_file('ignore-1.txt') self._add_other_file('ignore-1.txt')
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
self._add_other_file('ignore-2.txt') self._add_other_file('ignore-2.txt')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -294,10 +274,7 @@ class BasicTest(Base):
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
f1 = self._add_notes_file() f1 = self._add_notes_file()
f2 = self._add_notes_file() f2 = self._add_notes_file()
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -312,10 +289,7 @@ class BasicTest(Base):
f1 = self._add_notes_file(commit=False) f1 = self._add_notes_file(commit=False)
f2 = self._add_notes_file() f2 = self._add_notes_file()
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -331,10 +305,7 @@ class BasicTest(Base):
f1 = self._add_notes_file() f1 = self._add_notes_file()
self._run_git('tag', '-s', '-m', 'first tag', '2.0.0') self._run_git('tag', '-s', '-m', 'first tag', '2.0.0')
f2 = self._add_notes_file() f2 = self._add_notes_file()
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -354,10 +325,7 @@ class BasicTest(Base):
f2 = f1.replace('slug1', 'slug2') f2 = f1.replace('slug1', 'slug2')
self._run_git('mv', f1, f2) self._run_git('mv', f1, f2)
self._git_commit('rename note file') self._git_commit('rename note file')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -376,10 +344,7 @@ class BasicTest(Base):
f2 = f1.replace('slug1', 'slug0') f2 = f1.replace('slug1', 'slug0')
self._run_git('mv', f1, f2) self._run_git('mv', f1, f2)
self._git_commit('rename note file') self._git_commit('rename note file')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -398,10 +363,7 @@ class BasicTest(Base):
with open(os.path.join(self.reporoot, f1), 'w') as f: with open(os.path.join(self.reporoot, f1), 'w') as f:
f.write('---\npreamble: new contents for file') f.write('---\npreamble: new contents for file')
self._git_commit('edit note file') self._git_commit('edit note file')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -420,10 +382,7 @@ class BasicTest(Base):
f2 = f1.replace('slug1', 'slug2') f2 = f1.replace('slug1', 'slug2')
self._run_git('mv', f1, f2) self._run_git('mv', f1, f2)
self._git_commit('rename note file') self._git_commit('rename note file')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -445,10 +404,7 @@ class BasicTest(Base):
'slug1-0000000000000001') 'slug1-0000000000000001')
self._run_git('mv', f1, f2) self._run_git('mv', f1, f2)
self._git_commit('rename note file') self._git_commit('rename note file')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -467,11 +423,10 @@ class BasicTest(Base):
self._run_git('tag', '-s', '-m', 'middle tag', '2.0.0') self._run_git('tag', '-s', '-m', 'middle tag', '2.0.0')
f3 = self._add_notes_file() f3 = self._add_notes_file()
self._run_git('tag', '-s', '-m', 'last tag', '3.0.0') self._run_git('tag', '-s', '-m', 'last tag', '3.0.0')
raw_results = scanner.get_notes_by_version( self.c.override(
self.reporoot,
'releasenotes/notes',
earliest_version='2.0.0', earliest_version='2.0.0',
) )
raw_results = scanner.get_notes_by_version(self.c)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -491,10 +446,7 @@ class BasicTest(Base):
self._run_git('rm', f1) self._run_git('rm', f1)
self._git_commit('remove note file') self._git_commit('remove note file')
self._run_git('tag', '-s', '-m', 'first tag', '2.0.0') self._run_git('tag', '-s', '-m', 'first tag', '2.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -516,10 +468,7 @@ class BasicTest(Base):
self._git_commit('remove note file') self._git_commit('remove note file')
f3 = self._add_notes_file('slug3') f3 = self._add_notes_file('slug3')
self._run_git('tag', '-s', '-m', 'first tag', '2.0.0') self._run_git('tag', '-s', '-m', 'first tag', '2.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -538,10 +487,7 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0a1') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0a1')
f1 = self._add_notes_file('slug1') f1 = self._add_notes_file('slug1')
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0a2') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0a2')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -557,10 +503,7 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0b1') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0b1')
f1 = self._add_notes_file('slug1') f1 = self._add_notes_file('slug1')
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0b2') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0b2')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -576,10 +519,7 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0rc1') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0rc1')
f1 = self._add_notes_file('slug1') f1 = self._add_notes_file('slug1')
self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0rc2') self._run_git('tag', '-s', '-m', 'first tag', '1.0.0.0rc2')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -601,11 +541,10 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1') self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1')
files.append(self._add_notes_file('slug4')) files.append(self._add_notes_file('slug4'))
self._run_git('tag', '-s', '-m', 'full release tag', '1.0.0') self._run_git('tag', '-s', '-m', 'full release tag', '1.0.0')
raw_results = scanner.get_notes_by_version( self.c.override(
self.reporoot,
'releasenotes/notes',
collapse_pre_releases=True, collapse_pre_releases=True,
) )
raw_results = scanner.get_notes_by_version(self.c)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -624,11 +563,10 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'beta tag', '1.0.0.0b1') self._run_git('tag', '-s', '-m', 'beta tag', '1.0.0.0b1')
f3 = self._add_notes_file('slug3') f3 = self._add_notes_file('slug3')
self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1') self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1')
raw_results = scanner.get_notes_by_version( self.c.override(
self.reporoot,
'releasenotes/notes',
collapse_pre_releases=True, collapse_pre_releases=True,
) )
raw_results = scanner.get_notes_by_version(self.c)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -650,11 +588,10 @@ class PreReleaseTest(Base):
self._run_git('tag', '-s', '-m', 'beta tag', '1.0.0.0b1') self._run_git('tag', '-s', '-m', 'beta tag', '1.0.0.0b1')
f3 = self._add_notes_file('slug3') f3 = self._add_notes_file('slug3')
self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1') self._run_git('tag', '-s', '-m', 'release candidate tag', '1.0.0.0rc1')
raw_results = scanner.get_notes_by_version( self.c.override(
self.reporoot,
'releasenotes/notes',
collapse_pre_releases=True, collapse_pre_releases=True,
) )
raw_results = scanner.get_notes_by_version(self.c)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -682,10 +619,7 @@ class MergeCommitTest(Base):
self._run_git('merge', '--no-ff', 'test_merge_commit') self._run_git('merge', '--no-ff', 'test_merge_commit')
self._add_other_file('ignore-2.txt') self._add_other_file('ignore-2.txt')
self._run_git('tag', '-s', '-m', 'second tag', '2.0.0') self._run_git('tag', '-s', '-m', 'second tag', '2.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -713,10 +647,7 @@ class MergeCommitTest(Base):
self._run_git('merge', '--no-ff', 'test_merge_commit') self._run_git('merge', '--no-ff', 'test_merge_commit')
self._add_other_file('ignore-2.txt') self._add_other_file('ignore-2.txt')
self._run_git('tag', '-s', '-m', 'second tag', '2.0.0') self._run_git('tag', '-s', '-m', 'second tag', '2.0.0')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -748,10 +679,7 @@ class MergeCommitTest(Base):
self._add_other_file('ignore-2.txt') self._add_other_file('ignore-2.txt')
self._run_git('tag', '-s', '-m', 'third tag', '2.0.0') self._run_git('tag', '-s', '-m', 'third tag', '2.0.0')
self._add_other_file('ignore-3.txt') self._add_other_file('ignore-3.txt')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -787,10 +715,7 @@ class MergeCommitTest(Base):
self._add_other_file('ignore-2.txt') self._add_other_file('ignore-2.txt')
self._run_git('tag', '-s', '-m', 'third tag', '2.0.0') self._run_git('tag', '-s', '-m', 'third tag', '2.0.0')
self._add_other_file('ignore-3.txt') self._add_other_file('ignore-3.txt')
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -840,10 +765,7 @@ class BranchTest(Base):
f21 = self._add_notes_file('slug21') f21 = self._add_notes_file('slug21')
log_text = self._run_git('log') log_text = self._run_git('log')
self.addDetail('git log', text_content(log_text)) self.addDetail('git log', text_content(log_text))
raw_results = scanner.get_notes_by_version( raw_results = scanner.get_notes_by_version(self.c)
self.reporoot,
'releasenotes/notes',
)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()
@@ -865,11 +787,10 @@ class BranchTest(Base):
log_text = self._run_git('log', '--pretty=%x00%H %d', '--name-only', log_text = self._run_git('log', '--pretty=%x00%H %d', '--name-only',
'stable/2') 'stable/2')
self.addDetail('git log', text_content(log_text)) self.addDetail('git log', text_content(log_text))
raw_results = scanner.get_notes_by_version( self.c.override(
self.reporoot, branch='stable/2',
'releasenotes/notes',
'stable/2',
) )
raw_results = scanner.get_notes_by_version(self.c)
results = { results = {
k: [f for (f, n) in v] k: [f for (f, n) in v]
for (k, v) in raw_results.items() for (k, v) in raw_results.items()