trivial: Update to hacking 2.x

Fixes an issue we're seeing in the python3-based gate plus some other
random things.

Change-Id: I417c0a7669090ee3419c406024f6f3e3289b4c4b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane 2020-01-16 15:12:58 +00:00
parent dba41b2532
commit ddbd0ba1d9
8 changed files with 75 additions and 48 deletions

View File

@ -1,23 +1,21 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2011-2020 OpenStack LLC.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import print_function from __future__ import print_function
COPYRIGHT = """\
Copyright (C) 2011-2012 OpenStack LLC.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License."""
import argparse import argparse
import datetime import datetime
import getpass import getpass
@ -48,6 +46,24 @@ USER_CONFIG = os.path.join(CONFIGDIR, "git-review.conf")
DEFAULTS = dict(scheme='ssh', hostname=False, port=None, project=False, DEFAULTS = dict(scheme='ssh', hostname=False, port=None, project=False,
branch='master', remote="gerrit", rebase="1", branch='master', remote="gerrit", rebase="1",
track="0", usepushurl="0") track="0", usepushurl="0")
COPYRIGHT = """\
Copyright (C) 2011-2020 OpenStack LLC.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
_branch_name = None _branch_name = None
_has_color = None _has_color = None
@ -469,8 +485,8 @@ def alias_url(url, rewrite_push):
# there is a longer insteadOf alias. # there is a longer insteadOf alias.
longest = None longest = None
for alias in rewrites: for alias in rewrites:
if (url.startswith(alias) if url.startswith(alias) and (
and (longest is None or len(longest) < len(alias))): longest is None or len(longest) < len(alias)):
longest = alias longest = alias
if longest: if longest:
@ -1183,7 +1199,7 @@ def fetch_review(review, masterbranch, remote, project):
except KeyError: except KeyError:
topic = review topic = review
try: try:
author = re.sub('\W+', '_', review_info['owner']['name']).lower() author = re.sub(r'\W+', '_', review_info['owner']['name']).lower()
except KeyError: except KeyError:
author = 'unknown' author = 'unknown'
remote_branch = review_info['branch'] remote_branch = review_info['branch']
@ -1216,7 +1232,7 @@ def checkout_review(branch_name, remote, remote_branch):
branch_name) branch_name)
except CheckoutNewBranchFailed as e: except CheckoutNewBranchFailed as e:
if re.search("already exists\.?", e.output): if re.search(r"already exists\.?", e.output):
print("Branch %s already exists - reusing" % branch_name) print("Branch %s already exists - reusing" % branch_name)
track_remote, track_branch = parse_tracking( track_remote, track_branch = parse_tracking(
ref='refs/heads/' + branch_name) ref='refs/heads/' + branch_name)
@ -1389,7 +1405,14 @@ class _DownloadFlag(argparse.Action):
def _main(): def _main():
usage = "git review [OPTIONS] ... [BRANCH]" usage = "git review [OPTIONS] ... [BRANCH]"
parser = argparse.ArgumentParser(usage=usage, description=COPYRIGHT) description = """\
A git command for submitting branches to Gerrit.
git-review is a tool that helps submitting git branches to gerrit for
review.
"""
parser = argparse.ArgumentParser(usage=usage, description=description)
topic_arg_group = parser.add_mutually_exclusive_group() topic_arg_group = parser.add_mutually_exclusive_group()
topic_arg_group.add_argument("-t", "--topic", dest="topic", topic_arg_group.add_argument("-t", "--topic", dest="topic",
@ -1707,7 +1730,7 @@ def main():
# would report utf-8 # would report utf-8
# see: https://stackoverflow.com/a/23847316/99834 # see: https://stackoverflow.com/a/23847316/99834
stdin, stdout, stderr = sys.stdin, sys.stdout, sys.stderr stdin, stdout, stderr = sys.stdin, sys.stdout, sys.stderr
reload(sys) reload(sys) # noqa
sys.stdin, sys.stdout, sys.stderr = stdin, stdout, stderr sys.stdin, sys.stdout, sys.stderr = stdin, stdout, stderr
sys.setdefaultencoding(os.environ.get('PYTHONIOENCODING', 'utf-8')) sys.setdefaultencoding(os.environ.get('PYTHONIOENCODING', 'utf-8'))

View File

@ -20,6 +20,13 @@ import stat
import struct import struct
import sys import sys
import fixtures
import requests
import testtools
from testtools import content
from git_review.tests import utils
if sys.version < '3': if sys.version < '3':
import urllib import urllib
import urlparse import urlparse
@ -29,12 +36,6 @@ else:
import urllib.request import urllib.request
urlparse = urllib.parse.urlparse urlparse = urllib.parse.urlparse
import fixtures
import requests
import testtools
from testtools import content
from git_review.tests import utils
WAR_URL = 'http://tarballs.openstack.org/' \ WAR_URL = 'http://tarballs.openstack.org/' \
'ci/gerrit/gerrit-v2.11.4.13.cb9800e.war' 'ci/gerrit/gerrit-v2.11.4.13.cb9800e.war'

View File

@ -53,5 +53,6 @@ def main(argv):
) )
return 2 return 2
if __name__ == "__main__": if __name__ == "__main__":
sys.exit(main(sys.argv)) sys.exit(main(sys.argv))

View File

@ -22,5 +22,6 @@ def main():
helpers.ensure_gerrit_war() helpers.ensure_gerrit_war()
helpers.init_gerrit() helpers.init_gerrit()
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -287,8 +287,8 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase):
br_out = self._run_git('checkout', br_out = self._run_git('checkout',
'-b', 'test_branch', 'origin/maint') '-b', 'test_branch', 'origin/maint')
expected_track = ".*\nBranch '?test_branch'? set up to track remote" + \ expected_track = (".*\nBranch '?test_branch'? set up to track remote "
" branch '?maint'? from '?origin'?." "branch '?maint'? from '?origin'?.")
track_matcher = testtools.matchers.MatchesRegex(expected_track) track_matcher = testtools.matchers.MatchesRegex(expected_track)
self.assertThat(br_out, track_matcher) self.assertThat(br_out, track_matcher)
branches = self._run_git('branch', '-a') branches = self._run_git('branch', '-a')

View File

@ -18,6 +18,22 @@ import subprocess
import traceback import traceback
GERRIT_CONF_TMPL = """
[gerrit]
basePath = git
canonicalWebUrl = http://nonexistent/
[database]
type = h2
database = db/ReviewDB
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
[sshd]
listenAddress = %s:%s
[httpd]
listenUrl = http://%s:%s/
"""
def run_cmd(*args, **kwargs): def run_cmd(*args, **kwargs):
"""Run command and check the return code.""" """Run command and check the return code."""
preexec_fn = None preexec_fn = None
@ -64,21 +80,6 @@ def write_to_file(path, content):
with open(path, 'wb') as file_: with open(path, 'wb') as file_:
file_.write(content) file_.write(content)
GERRIT_CONF_TMPL = """
[gerrit]
basePath = git
canonicalWebUrl = http://nonexistent/
[database]
type = h2
database = db/ReviewDB
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
[sshd]
listenAddress = %s:%s
[httpd]
listenUrl = http://%s:%s/
"""
def get_gerrit_conf(ssh_addr, ssh_port, http_addr, http_port): def get_gerrit_conf(ssh_addr, ssh_port, http_addr, http_port):
return GERRIT_CONF_TMPL % (ssh_addr, ssh_port, http_addr, http_port) return GERRIT_CONF_TMPL % (ssh_addr, ssh_port, http_addr, http_port)

View File

@ -1,4 +1,4 @@
hacking>=0.10.0,<0.11 hacking>=2.0.0,<2.1.0
mock mock
fixtures>=0.3.14 fixtures>=0.3.14
stestr>=2.2.0 stestr>=2.2.0

View File

@ -36,6 +36,6 @@ commands =
commands = {posargs} commands = {posargs}
[flake8] [flake8]
ignore = E125,H202,H405,H904 ignore = E125,H202,H405,H904,W504
show-source = True show-source = True
exclude = .venv,.git,.tox,dist,doc,releasenotes,*lib/python*,*egg,build exclude = .venv,.git,.tox,dist,doc,releasenotes,*lib/python*,*egg,build