From fca99f945cffe53472d62e5695df352c6d40e5e6 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Mon, 30 Nov 2020 17:14:13 -0500 Subject: [PATCH] Fix compatibility with latest oslo.config With recent versions of oslo.config the tests have started to fail because the multistring opt used for specifying input subunit file paths was getting an implicit required. However it's not a required field just positional. This commit fixes this issue by explicitly setting it to not be requried and setting a default value of None for it. I'm not sure when an implicit required was added in oslo.config, but this should fix it regardless of which oslo.config version is used. Fixing other gate failure also for pythin 2.7 & 3.8 compatibility. - with mysql 8.0 there is no implicit user creation with GRANT. we need to create user first. - hacking version used is too old which pull old pyflakes (< 2.1.0) not compatible with py3.8. Bumping hacking version to 2.0.0 which solve the pyflakes version conflict with new pip resolver but skipping all the new checks of 2.0.0. We can fix those later once gate is green. - for openstack-tox-py27 we need to cap stestr with <3.0.0 so that it can pull stestr py2 compatible version. - move dec requirements seprate from test-requirements otherwise it conflist with other deps. Story: 2008348 Task: 41250 Change-Id: I219755d98d9f8b5a284c0e858b60f852b948c8d4 --- doc/requirements.txt | 4 ++++ subunit2sql/shell.py | 3 ++- test-requirements.txt | 10 +++------- tools/test-setup.sh | 4 ++-- tox.ini | 9 ++++++++- 5 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 doc/requirements.txt diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..6534098 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,4 @@ +openstackdocstheme>=1.11.0 # Apache-2.0 +reno>=0.1.1 # Apache2 +sphinx!=1.6.6,!=1.6.7,<2.0.0;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,!=2.1.0;python_version>='3.4' # BSD diff --git a/subunit2sql/shell.py b/subunit2sql/shell.py index 9e53ac4..00f2b74 100644 --- a/subunit2sql/shell.py +++ b/subunit2sql/shell.py @@ -31,7 +31,8 @@ CONF = cfg.CONF CONF.import_opt('verbose', 'subunit2sql.db.api') SHELL_OPTS = [ - cfg.MultiStrOpt('subunit_files', positional=True, + cfg.MultiStrOpt('subunit_files', positional=True, required=False, + default=None, help='list of subunit files to put into the database'), cfg.DictOpt('run_meta', short='r', default=None, help='Dict of metadata about the run(s)'), diff --git a/test-requirements.txt b/test-requirements.txt index fcf5c13..d54a05f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,18 +1,14 @@ -hacking>=0.12.0,!=0.13.0,<0.14 +hacking>=2.0.0,<2.1.0 coverage>=3.6 fixtures>=0.3.14 mock>=1.0 -sphinx!=1.6.6,!=1.6.7,<2.0.0;python_version=='2.7' # BSD -sphinx!=1.6.6,!=1.6.7,!=2.1.0;python_version>='3.4' # BSD testscenarios>=0.4 -stestr>=1.0.0 +stestr<3.0.0;python_version=='2.7' # BSD +stestr>=1.0.0;python_version>='3.4' # BSD testtools>=0.9.34 PyMySql psycopg2 oslo.concurrency>=3.5.0 -# releasenotes -reno>=0.1.1 # Apache2 -openstackdocstheme>=1.11.0 # Apache-2.0 # This is needed for oslo.db test code to be imported, it's not # directly installed by oslo.db testresources>=0.2.4 # Apache-2.0/BSD diff --git a/tools/test-setup.sh b/tools/test-setup.sh index 07a0785..505a58c 100755 --- a/tools/test-setup.sh +++ b/tools/test-setup.sh @@ -23,8 +23,8 @@ sudo -H mysqladmin -u root password $DB_ROOT_PW sudo -H mysql -u root -p$DB_ROOT_PW -h localhost -e " DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES; - GRANT ALL PRIVILEGES ON *.* - TO '$DB_USER'@'%' identified by '$DB_PW' WITH GRANT OPTION;" + CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PW'; + GRANT ALL PRIVILEGES ON *.* TO '$DB_USER'@'%' WITH GRANT OPTION;" # Now create our database. mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e " diff --git a/tox.ini b/tox.ini index 8befe6f..7dccbdb 100644 --- a/tox.ini +++ b/tox.ini @@ -41,6 +41,8 @@ commands = {posargs} [testenv:docs] basepython = python3 +deps = + -r{toxinidir}/doc/requirements.txt commands = python setup.py build_sphinx @@ -50,7 +52,10 @@ commands = python setup.py build_sphinx # E129 skipped because it is too limiting when combined with other rules # H305 skipped because it is inconsistent between python versions # E711 skipped because sqlalchemy filter() requires using == instead of is -ignore = E125,E123,E129,H305,E711 +# TODO (gmann): we have to bump the hacking version to 2.0.0 to fix the gate which is +# failing for new pip resolver. That is why F601,E402,W605,W504,E305,E117 are +# skipped temporary. +ignore = E125,E123,E129,H305,E711,F601,E402,W605,W504,E305,E117 exclude = .venv,.git,.tox,dist,doc,*egg,build,releasenotes [testenv:generate_samples] @@ -62,6 +67,8 @@ commands = [testenv:releasenotes] basepython = python3 +deps = + -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:bindep]