summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pbr/builddoc.py10
-rw-r--r--pbr/git.py20
-rw-r--r--pbr/options.py4
-rw-r--r--pbr/packaging.py30
-rw-r--r--pbr/tests/test_packaging.py234
-rw-r--r--pbr/tests/test_setup.py10
-rw-r--r--pbr/tests/test_wsgi.py2
-rw-r--r--pbr/tests/testpackage/doc/source/conf.py17
-rw-r--r--pbr/tests/util.py4
-rw-r--r--pbr/util.py7
-rw-r--r--pbr/version.py4
-rw-r--r--test-requirements.txt3
-rw-r--r--tox.ini6
13 files changed, 172 insertions, 179 deletions
diff --git a/pbr/builddoc.py b/pbr/builddoc.py
index f5c66ce..276eec6 100644
--- a/pbr/builddoc.py
+++ b/pbr/builddoc.py
@@ -132,11 +132,11 @@ class LocalBuildDoc(setup_command.BuildDoc):
autoindex.write(" %s.rst\n" % module)
def _sphinx_tree(self):
- source_dir = self._get_source_dir()
- cmd = ['-H', 'Modules', '-o', source_dir, '.']
- if apidoc_use_padding:
- cmd.insert(0, 'apidoc')
- apidoc.main(cmd + self.autodoc_tree_excludes)
+ source_dir = self._get_source_dir()
+ cmd = ['-H', 'Modules', '-o', source_dir, '.']
+ if apidoc_use_padding:
+ cmd.insert(0, 'apidoc')
+ apidoc.main(cmd + self.autodoc_tree_excludes)
def _sphinx_run(self):
if not self.verbose:
diff --git a/pbr/git.py b/pbr/git.py
index 6e0e346..f1d7c50 100644
--- a/pbr/git.py
+++ b/pbr/git.py
@@ -156,9 +156,9 @@ def _clean_changelog_message(msg):
* Escapes '`' which is interpreted as a literal
"""
- msg = msg.replace('*', '\*')
- msg = msg.replace('_', '\_')
- msg = msg.replace('`', '\`')
+ msg = msg.replace('*', r'\*')
+ msg = msg.replace('_', r'\_')
+ msg = msg.replace('`', r'\`')
return msg
@@ -276,13 +276,14 @@ def write_git_changelog(git_dir=None, dest_dir=os.path.curdir,
changelog = _iter_changelog(changelog)
if not changelog:
return
+
new_changelog = os.path.join(dest_dir, 'ChangeLog')
- # If there's already a ChangeLog and it's not writable, just use it
- if (os.path.exists(new_changelog)
- and not os.access(new_changelog, os.W_OK)):
+ if os.path.exists(new_changelog) and not os.access(new_changelog, os.W_OK):
+ # If there's already a ChangeLog and it's not writable, just use it
log.info('[pbr] ChangeLog not written (file already'
' exists and it is not writeable)')
return
+
log.info('[pbr] Writing ChangeLog')
with io.open(new_changelog, "w", encoding="utf-8") as changelog_file:
for release, content in changelog:
@@ -297,13 +298,14 @@ def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()):
'SKIP_GENERATE_AUTHORS')
if should_skip:
return
+
start = time.time()
old_authors = os.path.join(dest_dir, 'AUTHORS.in')
new_authors = os.path.join(dest_dir, 'AUTHORS')
- # If there's already an AUTHORS file and it's not writable, just use it
- if (os.path.exists(new_authors)
- and not os.access(new_authors, os.W_OK)):
+ if os.path.exists(new_authors) and not os.access(new_authors, os.W_OK):
+ # If there's already an AUTHORS file and it's not writable, just use it
return
+
log.info('[pbr] Generating AUTHORS')
ignore_emails = '((jenkins|zuul)@review|infra@lists|jenkins@openstack)'
if git_dir is None:
diff --git a/pbr/options.py b/pbr/options.py
index 105b200..2313cc4 100644
--- a/pbr/options.py
+++ b/pbr/options.py
@@ -48,6 +48,6 @@ TRUE_VALUES = ('true', '1', 'yes')
def get_boolean_option(option_dict, option_name, env_name):
- return ((option_name in option_dict
- and option_dict[option_name][1].lower() in TRUE_VALUES) or
+ return ((option_name in option_dict and
+ option_dict[option_name][1].lower() in TRUE_VALUES) or
str(os.getenv(env_name)).lower() in TRUE_VALUES)
diff --git a/pbr/packaging.py b/pbr/packaging.py
index 0947de2..a697992 100644
--- a/pbr/packaging.py
+++ b/pbr/packaging.py
@@ -110,20 +110,20 @@ def get_reqs_from_files(requirements_files):
def egg_fragment(match):
return re.sub(r'(?P<PackageName>[\w.-]+)-'
- '(?P<GlobalVersion>'
- '(?P<VersionTripple>'
- '(?P<Major>0|[1-9][0-9]*)\.'
- '(?P<Minor>0|[1-9][0-9]*)\.'
- '(?P<Patch>0|[1-9][0-9]*)){1}'
- '(?P<Tags>(?:\-'
- '(?P<Prerelease>(?:(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
- '(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
- '(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)(?:[0-9A-Za-z-]+)){1}'
- '(?:\.(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
- '\.(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
- '\.(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)'
- '(?:[0-9A-Za-z-]+))*){1}){0,1}(?:\+'
- '(?P<Meta>(?:[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))){0,1}))',
+ r'(?P<GlobalVersion>'
+ r'(?P<VersionTripple>'
+ r'(?P<Major>0|[1-9][0-9]*)\.'
+ r'(?P<Minor>0|[1-9][0-9]*)\.'
+ r'(?P<Patch>0|[1-9][0-9]*)){1}'
+ r'(?P<Tags>(?:\-'
+ r'(?P<Prerelease>(?:(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
+ r'(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
+ r'(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)(?:[0-9A-Za-z-]+)){1}'
+ r'(?:\.(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
+ r'\.(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
+ r'\.(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)'
+ r'(?:[0-9A-Za-z-]+))*){1}){0,1}(?:\+'
+ r'(?P<Meta>(?:[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))){0,1}))',
r'\g<PackageName>>=\g<GlobalVersion>',
match.groups()[-1])
@@ -328,6 +328,7 @@ except ImportError:
def have_nose():
return _have_nose
+
_wsgi_text = """#PBR Generated from %(group)r
import threading
@@ -652,6 +653,7 @@ class LocalSDist(sdist.sdist):
self.filelist.sort()
sdist.sdist.make_distribution(self)
+
try:
from pbr import builddoc
_have_sphinx = True
diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py
index 811715b..07be547 100644
--- a/pbr/tests/test_packaging.py
+++ b/pbr/tests/test_packaging.py
@@ -108,7 +108,7 @@ class GPGKeyFixture(fixtures.Fixture):
def setUp(self):
super(GPGKeyFixture, self).setUp()
tempdir = self.useFixture(fixtures.TempDir())
- gnupg_version_re = re.compile('^gpg\s.*\s([\d+])\.([\d+])\.([\d+])')
+ gnupg_version_re = re.compile(r'^gpg\s.*\s([\d+])\.([\d+])\.([\d+])')
gnupg_version = base._run_cmd(['gpg', '--version'], tempdir.path)
for line in gnupg_version[0].split('\n'):
gnupg_version = gnupg_version_re.match(line)
@@ -120,9 +120,9 @@ class GPGKeyFixture(fixtures.Fixture):
else:
if gnupg_version is None:
gnupg_version = (0, 0, 0)
- config_file = tempdir.path + '/key-config'
- f = open(config_file, 'wt')
- try:
+
+ config_file = os.path.join(tempdir.path, 'key-config')
+ with open(config_file, 'wt') as f:
if gnupg_version[0] == 2 and gnupg_version[1] >= 1:
f.write("""
%no-protection
@@ -138,8 +138,7 @@ class GPGKeyFixture(fixtures.Fixture):
Preferences: (setpref)
%commit
""")
- finally:
- f.close()
+
# Note that --quick-random (--debug-quick-random in GnuPG 2.x)
# does not have a corresponding preferences file setting and
# must be passed explicitly on the command line instead
@@ -149,6 +148,7 @@ class GPGKeyFixture(fixtures.Fixture):
gnupg_random = '--debug-quick-random'
else:
gnupg_random = ''
+
base._run_cmd(
['gpg', '--gen-key', '--batch', gnupg_random, config_file],
tempdir.path)
@@ -293,23 +293,23 @@ class TestPackagingInGitRepoWithCommit(base.BaseTestCase):
self.run_setup('sdist', allow_fail=False)
with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f:
body = f.read()
- self.assertIn('\*', body)
+ self.assertIn(r'\*', body)
def test_changelog_handles_dead_links_in_commit(self):
self.repo.commit(message_content="See os_ for to_do about qemu_.")
self.run_setup('sdist', allow_fail=False)
with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f:
body = f.read()
- self.assertIn('os\_', body)
- self.assertIn('to\_do', body)
- self.assertIn('qemu\_', body)
+ self.assertIn(r'os\_', body)
+ self.assertIn(r'to\_do', body)
+ self.assertIn(r'qemu\_', body)
def test_changelog_handles_backticks(self):
self.repo.commit(message_content="Allow `openstack.org` to `work")
self.run_setup('sdist', allow_fail=False)
with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f:
body = f.read()
- self.assertIn('\`', body)
+ self.assertIn(r'\`', body)
def test_manifest_exclude_honoured(self):
self.run_setup('sdist', allow_fail=False)
@@ -765,8 +765,10 @@ class TestVersions(base.BaseTestCase):
def test_get_kwargs_corner_cases(self):
# No tags:
- git_dir = self.repo._basedir + '/.git'
- get_kwargs = lambda tag: packaging._get_increment_kwargs(git_dir, tag)
+
+ def get_kwargs(tag):
+ git_dir = self.repo._basedir + '/.git'
+ return packaging._get_increment_kwargs(git_dir, tag)
def _check_combinations(tag):
self.repo.commit()
@@ -947,109 +949,109 @@ class TestRepositoryURLDependencies(base.BaseTestCase):
'pypi-proj1', 'pypi-proj2']))
def test_egg_fragment(self):
- expected = [
- 'django-thumborize',
- 'django-thumborize-beta',
- 'django-thumborize2-beta',
- 'django-thumborize2-beta>=4.0.1',
- 'django-thumborize2-beta>=1.0.0-alpha.beta.1',
- 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
- 'django-thumborize2-beta>=2.0.0-rc.1+build.123',
- 'django-thumborize-beta>=0.0.4',
- 'django-thumborize-beta>=1.2.3',
- 'django-thumborize-beta>=10.20.30',
- 'django-thumborize-beta>=1.1.2-prerelease+meta',
- 'django-thumborize-beta>=1.1.2+meta',
- 'django-thumborize-beta>=1.1.2+meta-valid',
- 'django-thumborize-beta>=1.0.0-alpha',
- 'django-thumborize-beta>=1.0.0-beta',
- 'django-thumborize-beta>=1.0.0-alpha.beta',
- 'django-thumborize-beta>=1.0.0-alpha.beta.1',
- 'django-thumborize-beta>=1.0.0-alpha.1',
- 'django-thumborize-beta>=1.0.0-alpha0.valid',
- 'django-thumborize-beta>=1.0.0-alpha.0valid',
- 'django-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
- 'django-thumborize-beta>=1.0.0-rc.1+build.1',
- 'django-thumborize-beta>=2.0.0-rc.1+build.123',
- 'django-thumborize-beta>=1.2.3-beta',
- 'django-thumborize-beta>=10.2.3-DEV-SNAPSHOT',
- 'django-thumborize-beta>=1.2.3-SNAPSHOT-123',
- 'django-thumborize-beta>=1.0.0',
- 'django-thumborize-beta>=2.0.0',
- 'django-thumborize-beta>=1.1.7',
- 'django-thumborize-beta>=2.0.0+build.1848',
- 'django-thumborize-beta>=2.0.1-alpha.1227',
- 'django-thumborize-beta>=1.0.0-alpha+beta',
- 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788',
- 'django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+meta',
- 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12',
- 'django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1',
- 'django-thumborize-beta>=999999999999999999.99999999999999.9999999999999', # noqa
- 'Proj1',
- 'Proj2>=0.0.1',
- 'Proj3',
- 'Proj4>=0.0.2',
- 'Proj5',
- 'Proj>=0.0.3',
- 'Proj',
- 'Proj>=0.0.4',
- 'Proj',
- 'foo-bar>=1.2.4',
- ]
- tests = [
- 'egg=django-thumborize',
- 'egg=django-thumborize-beta',
- 'egg=django-thumborize2-beta',
- 'egg=django-thumborize2-beta-4.0.1',
- 'egg=django-thumborize2-beta-1.0.0-alpha.beta.1',
- 'egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
- 'egg=django-thumborize2-beta-2.0.0-rc.1+build.123',
- 'egg=django-thumborize-beta-0.0.4',
- 'egg=django-thumborize-beta-1.2.3',
- 'egg=django-thumborize-beta-10.20.30',
- 'egg=django-thumborize-beta-1.1.2-prerelease+meta',
- 'egg=django-thumborize-beta-1.1.2+meta',
- 'egg=django-thumborize-beta-1.1.2+meta-valid',
- 'egg=django-thumborize-beta-1.0.0-alpha',
- 'egg=django-thumborize-beta-1.0.0-beta',
- 'egg=django-thumborize-beta-1.0.0-alpha.beta',
- 'egg=django-thumborize-beta-1.0.0-alpha.beta.1',
- 'egg=django-thumborize-beta-1.0.0-alpha.1',
- 'egg=django-thumborize-beta-1.0.0-alpha0.valid',
- 'egg=django-thumborize-beta-1.0.0-alpha.0valid',
- 'egg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
- 'egg=django-thumborize-beta-1.0.0-rc.1+build.1',
- 'egg=django-thumborize-beta-2.0.0-rc.1+build.123',
- 'egg=django-thumborize-beta-1.2.3-beta',
- 'egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOT',
- 'egg=django-thumborize-beta-1.2.3-SNAPSHOT-123',
- 'egg=django-thumborize-beta-1.0.0',
- 'egg=django-thumborize-beta-2.0.0',
- 'egg=django-thumborize-beta-1.1.7',
- 'egg=django-thumborize-beta-2.0.0+build.1848',
- 'egg=django-thumborize-beta-2.0.1-alpha.1227',
- 'egg=django-thumborize-beta-1.0.0-alpha+beta',
- 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788', # noqa
- 'egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+meta',
- 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12',
- 'egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1', # noqa
- 'egg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999', # noqa
- 'egg=Proj1',
- 'egg=Proj2-0.0.1',
- 'egg=Proj3',
- 'egg=Proj4-0.0.2',
- 'egg=Proj5',
- 'egg=Proj-0.0.3',
- 'egg=Proj',
- 'egg=Proj-0.0.4',
- 'egg=Proj',
- 'egg=foo-bar-1.2.4',
- ]
- for index, test in enumerate(tests):
- self.assertEqual(expected[index],
- re.sub(r'egg=([^&]+).*$',
- packaging.egg_fragment,
- test))
+ expected = [
+ 'django-thumborize',
+ 'django-thumborize-beta',
+ 'django-thumborize2-beta',
+ 'django-thumborize2-beta>=4.0.1',
+ 'django-thumborize2-beta>=1.0.0-alpha.beta.1',
+ 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
+ 'django-thumborize2-beta>=2.0.0-rc.1+build.123',
+ 'django-thumborize-beta>=0.0.4',
+ 'django-thumborize-beta>=1.2.3',
+ 'django-thumborize-beta>=10.20.30',
+ 'django-thumborize-beta>=1.1.2-prerelease+meta',
+ 'django-thumborize-beta>=1.1.2+meta',
+ 'django-thumborize-beta>=1.1.2+meta-valid',
+ 'django-thumborize-beta>=1.0.0-alpha',
+ 'django-thumborize-beta>=1.0.0-beta',
+ 'django-thumborize-beta>=1.0.0-alpha.beta',
+ 'django-thumborize-beta>=1.0.0-alpha.beta.1',
+ 'django-thumborize-beta>=1.0.0-alpha.1',
+ 'django-thumborize-beta>=1.0.0-alpha0.valid',
+ 'django-thumborize-beta>=1.0.0-alpha.0valid',
+ 'django-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
+ 'django-thumborize-beta>=1.0.0-rc.1+build.1',
+ 'django-thumborize-beta>=2.0.0-rc.1+build.123',
+ 'django-thumborize-beta>=1.2.3-beta',
+ 'django-thumborize-beta>=10.2.3-DEV-SNAPSHOT',
+ 'django-thumborize-beta>=1.2.3-SNAPSHOT-123',
+ 'django-thumborize-beta>=1.0.0',
+ 'django-thumborize-beta>=2.0.0',
+ 'django-thumborize-beta>=1.1.7',
+ 'django-thumborize-beta>=2.0.0+build.1848',
+ 'django-thumborize-beta>=2.0.1-alpha.1227',
+ 'django-thumborize-beta>=1.0.0-alpha+beta',
+ 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788',
+ 'django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+meta',
+ 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12',
+ 'django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1',
+ 'django-thumborize-beta>=999999999999999999.99999999999999.9999999999999', # noqa
+ 'Proj1',
+ 'Proj2>=0.0.1',
+ 'Proj3',
+ 'Proj4>=0.0.2',
+ 'Proj5',
+ 'Proj>=0.0.3',
+ 'Proj',
+ 'Proj>=0.0.4',
+ 'Proj',
+ 'foo-bar>=1.2.4',
+ ]
+ tests = [
+ 'egg=django-thumborize',
+ 'egg=django-thumborize-beta',
+ 'egg=django-thumborize2-beta',
+ 'egg=django-thumborize2-beta-4.0.1',
+ 'egg=django-thumborize2-beta-1.0.0-alpha.beta.1',
+ 'egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
+ 'egg=django-thumborize2-beta-2.0.0-rc.1+build.123',
+ 'egg=django-thumborize-beta-0.0.4',
+ 'egg=django-thumborize-beta-1.2.3',
+ 'egg=django-thumborize-beta-10.20.30',
+ 'egg=django-thumborize-beta-1.1.2-prerelease+meta',
+ 'egg=django-thumborize-beta-1.1.2+meta',
+ 'egg=django-thumborize-beta-1.1.2+meta-valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha',
+ 'egg=django-thumborize-beta-1.0.0-beta',
+ 'egg=django-thumborize-beta-1.0.0-alpha.beta',
+ 'egg=django-thumborize-beta-1.0.0-alpha.beta.1',
+ 'egg=django-thumborize-beta-1.0.0-alpha.1',
+ 'egg=django-thumborize-beta-1.0.0-alpha0.valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha.0valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
+ 'egg=django-thumborize-beta-1.0.0-rc.1+build.1',
+ 'egg=django-thumborize-beta-2.0.0-rc.1+build.123',
+ 'egg=django-thumborize-beta-1.2.3-beta',
+ 'egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOT',
+ 'egg=django-thumborize-beta-1.2.3-SNAPSHOT-123',
+ 'egg=django-thumborize-beta-1.0.0',
+ 'egg=django-thumborize-beta-2.0.0',
+ 'egg=django-thumborize-beta-1.1.7',
+ 'egg=django-thumborize-beta-2.0.0+build.1848',
+ 'egg=django-thumborize-beta-2.0.1-alpha.1227',
+ 'egg=django-thumborize-beta-1.0.0-alpha+beta',
+ 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788', # noqa
+ 'egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+meta',
+ 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12',
+ 'egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1', # noqa
+ 'egg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999', # noqa
+ 'egg=Proj1',
+ 'egg=Proj2-0.0.1',
+ 'egg=Proj3',
+ 'egg=Proj4-0.0.2',
+ 'egg=Proj5',
+ 'egg=Proj-0.0.3',
+ 'egg=Proj',
+ 'egg=Proj-0.0.4',
+ 'egg=Proj',
+ 'egg=foo-bar-1.2.4',
+ ]
+ for index, test in enumerate(tests):
+ self.assertEqual(expected[index],
+ re.sub(r'egg=([^&]+).*$',
+ packaging.egg_fragment,
+ test))
def test_parse_repo_url_requirements(self):
result = packaging.parse_requirements([self.requirements])
diff --git a/pbr/tests/test_setup.py b/pbr/tests/test_setup.py
index 85d40eb..d171d7c 100644
--- a/pbr/tests/test_setup.py
+++ b/pbr/tests/test_setup.py
@@ -93,8 +93,9 @@ class SkipFileWrites(base.BaseTestCase):
option_dict=self.option_dict)
self.assertEqual(
not os.path.exists(self.filename),
- (self.option_value.lower() in options.TRUE_VALUES
- or self.env_value is not None))
+ (self.option_value.lower() in options.TRUE_VALUES or
+ self.env_value is not None))
+
_changelog_content = """7780758\x00Break parser\x00 (tag: refs/tags/1_foo.1)
04316fe\x00Make python\x00 (refs/heads/review/monty_taylor/27519)
@@ -125,6 +126,7 @@ def _make_old_git_changelog_format(line):
refname = refname.replace('tag: ', '')
return '\x00'.join((sha, msg, refname))
+
_old_git_changelog_content = '\n'.join(
_make_old_git_changelog_format(line)
for line in _changelog_content.split('\n'))
@@ -162,7 +164,7 @@ class GitLogsTest(base.BaseTestCase):
self.assertIn("------", changelog_contents)
self.assertIn("Refactor hooks file", changelog_contents)
self.assertIn(
- "Bug fix: create\_stack() fails when waiting",
+ r"Bug fix: create\_stack() fails when waiting",
changelog_contents)
self.assertNotIn("Refactor hooks file.", changelog_contents)
self.assertNotIn("182feb3", changelog_contents)
@@ -176,7 +178,7 @@ class GitLogsTest(base.BaseTestCase):
self.assertNotIn("ev)il", changelog_contents)
self.assertNotIn("e(vi)l", changelog_contents)
self.assertNotIn('Merge "', changelog_contents)
- self.assertNotIn('1\_foo.1', changelog_contents)
+ self.assertNotIn(r'1\_foo.1', changelog_contents)
def test_generate_authors(self):
author_old = u"Foo Foo <email@foo.com>"
diff --git a/pbr/tests/test_wsgi.py b/pbr/tests/test_wsgi.py
index 18732f7..a42fe78 100644
--- a/pbr/tests/test_wsgi.py
+++ b/pbr/tests/test_wsgi.py
@@ -98,7 +98,7 @@ class TestWsgiScripts(base.BaseTestCase):
stdoutdata = p.stdout.readline() # Available at ...
print(stdoutdata)
- m = re.search(b'(http://[^:]+:\d+)/', stdoutdata)
+ m = re.search(br'(http://[^:]+:\d+)/', stdoutdata)
self.assertIsNotNone(m, "Regex failed to match on %s" % stdoutdata)
stdoutdata = p.stdout.readline() # DANGER! ...
diff --git a/pbr/tests/testpackage/doc/source/conf.py b/pbr/tests/testpackage/doc/source/conf.py
index 7358510..6edbe8e 100644
--- a/pbr/tests/testpackage/doc/source/conf.py
+++ b/pbr/tests/testpackage/doc/source/conf.py
@@ -12,17 +12,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os
-import sys
-sys.path.insert(0, os.path.abspath('../..'))
# -- General configuration ----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = [
'sphinx.ext.autodoc',
- #'sphinx.ext.intersphinx',
]
# autodoc generation is a bit aggressive and a nuisance when doing heavy
@@ -49,16 +45,8 @@ add_module_names = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
-# -- Options for HTML output --------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-# html_theme_path = ["."]
-# html_theme = '_theme'
-# html_static_path = ['static']
-# Output file base name for HTML help builder.
-htmlhelp_basename = '%sdoc' % project
+# -- Options for HTML output --------------------------------------------------
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
@@ -69,6 +57,3 @@ latex_documents = [
u'%s Documentation' % project,
u'OpenStack Foundation', 'manual'),
]
-
-# Example configuration for intersphinx: refer to the Python standard library.
-#intersphinx_mapping = {'http://docs.python.org/': None}
diff --git a/pbr/tests/util.py b/pbr/tests/util.py
index 0e7bcf1..8a00c84 100644
--- a/pbr/tests/util.py
+++ b/pbr/tests/util.py
@@ -53,9 +53,9 @@ except ImportError:
@contextlib.contextmanager
def open_config(filename):
if sys.version_info >= (3, 2):
- cfg = configparser.ConfigParser()
+ cfg = configparser.ConfigParser()
else:
- cfg = configparser.SafeConfigParser()
+ cfg = configparser.SafeConfigParser()
cfg.read(filename)
yield cfg
with open(filename, 'w') as fp:
diff --git a/pbr/util.py b/pbr/util.py
index 6b2e87d..1e9fdc4 100644
--- a/pbr/util.py
+++ b/pbr/util.py
@@ -219,10 +219,11 @@ def cfg_to_args(path='setup.cfg', script_args=()):
"""
# The method source code really starts here.
- if sys.version_info >= (3, 2):
- parser = configparser.ConfigParser()
+ if sys.version_info >= (3, 0):
+ parser = configparser.ConfigParser()
else:
- parser = configparser.SafeConfigParser()
+ parser = configparser.SafeConfigParser()
+
if not os.path.exists(path):
raise errors.DistutilsFileError("file '%s' does not exist" %
os.path.abspath(path))
diff --git a/pbr/version.py b/pbr/version.py
index 5eb217a..46c6020 100644
--- a/pbr/version.py
+++ b/pbr/version.py
@@ -323,8 +323,8 @@ class SemanticVersion(object):
version number of the component to preserve sorting. (Used for
rpm support)
"""
- if ((self._prerelease_type or self._dev_count)
- and pre_separator is None):
+ if ((self._prerelease_type or self._dev_count) and
+ pre_separator is None):
segments = [self.decrement().brief_string()]
pre_separator = "."
else:
diff --git a/test-requirements.txt b/test-requirements.txt
index c30a2b1..09efec0 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,9 +1,10 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
+
wheel>=0.32.0 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
mock>=2.0.0 # BSD
six>=1.10.0 # MIT
stestr>=2.1.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index ca87002..d48c770 100644
--- a/tox.ini
+++ b/tox.ini
@@ -48,10 +48,8 @@ commands =
coverage xml -o cover/coverage.xml
[flake8]
-# H405 multi line docstring summary not separated with an empty line
-# H904 "Wrap lines in parentheses and not a backslash for line continuation
-# Removed in current hacking (https://review.openstack.org/#/c/101701/).
-ignore = H803,H904
+# W504 (you have to choose this or W503)
+ignore = W504
exclude = .venv,.tox,dist,doc,*.egg,build
show-source = true