Hello community,
here is the log from the commit of package python-oslo.utils for
openSUSE:Factory checked in at 2020-06-05 20:15:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.utils.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.utils"
Fri Jun 5 20:15:29 2020 rev:21 rq:803601 version:4.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes
2020-03-24 22:32:37.565097683 +0100
+++
/work/SRC/openSUSE:Factory/.python-oslo.utils.new.3606/python-oslo.utils.changes
2020-06-05 20:19:36.619743280 +0200
@@ -1,0 +2,31 @@
+Tue May 12 09:49:15 UTC 2020 - [email protected]
+
+- update to version 4.1.1
+ - trivial: Move setup code into setUp helper
+ - Switch to Ussuri jobs
+ - Remove universal wheel configuration
+ - tests: Convert remaining tests to mock
+ - tox: Use upper-constraints for docs jobs
+ - Make mask_password case insensitive, and add new patterns
+ - Ignore releasenote cache within git untracked files
+ - Ignore the .eggs directory
+ - Support "qemu-img info" virtual size in QEMU 4.1 and later
+ - reword releasenote for py27 support dropping
+ - Bump the openstackdocstheme extension to 1.20
+ - tox: Keeping going with docs
+ - Update master for stable/train
+ - Add test to check scientific notation on disk virtual size
+ - Update hacking for Python3
+ - Use unittest.mock instead of third party mock
+ - remove outdated header
+ - Fix invalid escapes in regular expression strings
+ - tox: Trivial cleanup
+ - imageutils: Report format specific details when using JSON output format
+ - Verify the sanitize keys are lowered
+ - Update the constraints url
+ - Make mask_dict_password case insensitive and add new patterns
+ - Fix regex to correctly recognize scientific notation with QemuImgInfo
+ - Flatten test case
+ - [ussuri][goal] Drop python 2.7 support and testing
+
+-------------------------------------------------------------------
Old:
----
oslo.utils-3.41.5.tar.gz
New:
----
oslo.utils-4.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.hsWIMR/_old 2020-06-05 20:19:37.411745972 +0200
+++ /var/tmp/diff_new_pack.hsWIMR/_new 2020-06-05 20:19:37.415745985 +0200
@@ -17,13 +17,13 @@
Name: python-oslo.utils
-Version: 3.41.5
+Version: 4.1.1
Release: 0
Summary: OpenStack Utils Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.utils
-Source0:
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.41.5.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-4.1.1.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-Babel
BuildRequires: python3-ddt
@@ -32,7 +32,7 @@
BuildRequires: python3-fixtures
BuildRequires: python3-iso8601 >= 0.1.11
BuildRequires: python3-mock
-BuildRequires: python3-monotonic >= 0.6
+BuildRequires: python3-monotonic
BuildRequires: python3-netaddr >= 0.7.18
BuildRequires: python3-netifaces >= 0.10.4
BuildRequires: python3-oslo.i18n >= 3.15.3
@@ -76,7 +76,7 @@
Documentation for OpenStack utils library.
%prep
-%autosetup -p1 -n oslo.utils-3.41.5
+%autosetup -p1 -n oslo.utils-4.1.1
%py_req_cleanup
@@ -87,7 +87,7 @@
%py3_install
# generate html docs
-PBR_VERSION=3.41.5 %sphinx_build -b html doc/source doc/build/html
+PBR_VERSION=4.1.1 %sphinx_build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.hsWIMR/_old 2020-06-05 20:19:37.439746068 +0200
+++ /var/tmp/diff_new_pack.hsWIMR/_new 2020-06-05 20:19:37.439746068 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/oslo.utils/oslo.utils.spec.j2</param>
+ <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/oslo.utils/oslo.utils.spec.j2</param>
<param name="output-name">python-oslo.utils.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/train/requirements.txt</param>
+ <param
name="requirements">https://opendev.org/openstack/oslo.utils/raw/branch/stable/ussuri/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,oslo.utils</param>
</service>
++++++ oslo.utils-3.41.5.tar.gz -> oslo.utils-4.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/.zuul.yaml
new/oslo.utils-4.1.1/.zuul.yaml
--- old/oslo.utils-3.41.5/.zuul.yaml 2020-03-04 02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/.zuul.yaml 2020-04-07 12:08:13.000000000 +0200
@@ -1,11 +1,9 @@
- project:
templates:
- check-requirements
- - lib-forward-testing
- lib-forward-testing-python3
- openstack-lower-constraints-jobs
- - openstack-python-jobs
- - openstack-python3-train-jobs
+ - openstack-python3-ussuri-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/AUTHORS
new/oslo.utils-4.1.1/AUTHORS
--- old/oslo.utils-3.41.5/AUTHORS 2020-03-04 02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/AUTHORS 2020-04-07 12:09:28.000000000 +0200
@@ -86,6 +86,7 @@
Julien Danjou <[email protected]>
Kenneth Giusti <[email protected]>
Kevin Houdebert <[email protected]>
+Lee Yarwood <[email protected]>
Lucas Alvares Gomes <[email protected]>
Mark Mielke <[email protected]>
Matthew Booth <[email protected]>
@@ -101,6 +102,7 @@
Omar Shykhkerimov <[email protected]>
OpenStack Release Bot <[email protected]>
Paul Belanger <[email protected]>
+Radomir Dopieralski <[email protected]>
Rahul Nair <[email protected]>
Rajath Agasthya <[email protected]>
Raymond Pekowski <[email protected]>
@@ -111,6 +113,7 @@
Russell Bryant <[email protected]>
SandyWalsh <[email protected]>
Sean Dague <[email protected]>
+Sean McGinnis <[email protected]>
Sean McGinnis <[email protected]>
Sergey Kraynev <[email protected]>
Sergey Lukjanov <[email protected]>
@@ -141,6 +144,7 @@
Zhongyue Luo <[email protected]>
avnish <[email protected]>
bhagyashris <[email protected]>
+caoyuan <[email protected]>
changxun <[email protected]>
dharmendra <[email protected]>
ekudryashova <[email protected]>
@@ -155,6 +159,7 @@
malei <[email protected]>
melissaml <[email protected]>
paul-carlton2 <[email protected]>
+pengyuesheng <[email protected]>
pran1990 <[email protected]>
ricolin <[email protected]>
sridhargaddam <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/ChangeLog
new/oslo.utils-4.1.1/ChangeLog
--- old/oslo.utils-3.41.5/ChangeLog 2020-03-04 02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/ChangeLog 2020-04-07 12:09:28.000000000 +0200
@@ -1,28 +1,55 @@
CHANGES
=======
-3.41.5
-------
+4.1.1
+-----
+* Update hacking for Python3
+* Use unittest.mock instead of third party mock
+* tox: Use upper-constraints for docs jobs
+
+4.1.0
+-----
+
+* Add test to check scientific notation on disk virtual size
+* tests: Convert remaining tests to mock
+* Flatten test case
* Fix regex to correctly recognize scientific notation with QemuImgInfo
+* imageutils: Report format specific details when using JSON output format
+
+4.0.1
+-----
+
+* remove outdated header
+* Remove universal wheel configuration
+* reword releasenote for py27 support dropping
+
+4.0.0
+-----
-3.41.4
+* [ussuri][goal] Drop python 2.7 support and testing
+* tox: Trivial cleanup
+* Ignore releasenote cache within git untracked files
+* trivial: Move setup code into setUp helper
+
+3.42.1
------
* Verify the sanitize keys are lowered
+* Fix invalid escapes in regular expression strings
+* Ignore the .eggs directory
* Make mask\_dict\_password case insensitive and add new patterns
+* Bump the openstackdocstheme extension to 1.20
-3.41.3
+3.42.0
------
* Make mask\_password case insensitive, and add new patterns
-
-3.41.2
-------
-
+* tox: Keeping going with docs
+* Switch to Ussuri jobs
+* Update the constraints url
* Support "qemu-img info" virtual size in QEMU 4.1 and later
-* Update TOX/UPPER\_CONSTRAINTS\_FILE for stable/train
-* Update .gitreview for stable/train
+* Update master for stable/train
3.41.1
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/PKG-INFO
new/oslo.utils-4.1.1/PKG-INFO
--- old/oslo.utils-3.41.5/PKG-INFO 2020-03-04 02:02:35.000000000 +0100
+++ new/oslo.utils-4.1.1/PKG-INFO 2020-04-07 12:09:28.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: oslo.utils
-Version: 3.41.5
+Version: 4.1.1
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -44,8 +44,9 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/doc/requirements.txt
new/oslo.utils-4.1.1/doc/requirements.txt
--- old/oslo.utils-3.41.5/doc/requirements.txt 2020-03-04 02:01:40.000000000
+0100
+++ new/oslo.utils-4.1.1/doc/requirements.txt 2020-04-07 12:08:13.000000000
+0200
@@ -2,8 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
# this is required for the docs build jobs
-sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
-sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
-openstackdocstheme>=1.18.1 # Apache-2.0
+sphinx>=1.8.0,!=2.1.0 # BSD
+openstackdocstheme>=1.20.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/doc/source/conf.py
new/oslo.utils-4.1.1/doc/source/conf.py
--- old/oslo.utils-3.41.5/doc/source/conf.py 2020-03-04 02:01:40.000000000
+0100
+++ new/oslo.utils-4.1.1/doc/source/conf.py 2020-04-07 12:08:13.000000000
+0200
@@ -63,8 +63,6 @@
# html_static_path = ['static']
html_theme = 'openstackdocs'
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# Output file base name for HTML help builder.
htmlhelp_basename = '%sdoc' % project
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/lower-constraints.txt
new/oslo.utils-4.1.1/lower-constraints.txt
--- old/oslo.utils-3.41.5/lower-constraints.txt 2020-03-04 02:01:40.000000000
+0100
+++ new/oslo.utils-4.1.1/lower-constraints.txt 2020-04-07 12:08:13.000000000
+0200
@@ -7,17 +7,13 @@
eventlet==0.18.2
extras==1.0.0
fixtures==3.0.0
-flake8==2.5.5
funcsigs==1.0.0
gitdb==0.6.4
GitPython==1.0.1
-hacking==0.12.0
iso8601==0.1.11
keystoneauth1==3.4.0
linecache2==1.0.0
mccabe==0.2.1
-mock==2.0.0
-monotonic==0.6
netaddr==0.7.18
netifaces==0.10.4
os-client-config==1.28.0
@@ -25,8 +21,6 @@
oslo.i18n==3.15.3
oslotest==3.2.0
pbr==2.0.0
-pep8==1.5.7
-pyflakes==0.8.1
pyparsing==2.1.0
python-mimeparse==1.6.0
python-subunit==1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo.utils.egg-info/PKG-INFO
new/oslo.utils-4.1.1/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-3.41.5/oslo.utils.egg-info/PKG-INFO 2020-03-04
02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo.utils.egg-info/PKG-INFO 2020-04-07
12:09:28.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: oslo.utils
-Version: 3.41.5
+Version: 4.1.1
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
@@ -44,8 +44,9 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo.utils.egg-info/SOURCES.txt
new/oslo.utils-4.1.1/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-3.41.5/oslo.utils.egg-info/SOURCES.txt 2020-03-04
02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo.utils.egg-info/SOURCES.txt 2020-04-07
12:09:28.000000000 +0200
@@ -96,6 +96,7 @@
oslo_utils/tests/fake/v2/dummpy.py
releasenotes/notes/add-reno-350f5f34f794fb5e.yaml
releasenotes/notes/bump-up-port-range-f774a16336158339.yaml
+releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
releasenotes/notes/image-utils-handle-scientific-notation-6f65d46e9c8c8f8c.yaml
releasenotes/notes/mask-dict-passwords-99357ffb7972fb0b.yaml
releasenotes/notes/mask-password-patterns-f41524069b8ae488.yaml
@@ -107,6 +108,7 @@
releasenotes/source/queens.rst
releasenotes/source/rocky.rst
releasenotes/source/stein.rst
+releasenotes/source/train.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo.utils.egg-info/pbr.json
new/oslo.utils-4.1.1/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-3.41.5/oslo.utils.egg-info/pbr.json 2020-03-04
02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo.utils.egg-info/pbr.json 2020-04-07
12:09:28.000000000 +0200
@@ -1 +1 @@
-{"git_version": "85cd57d", "is_release": true}
\ No newline at end of file
+{"git_version": "af89f70", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo.utils.egg-info/requires.txt
new/oslo.utils-4.1.1/oslo.utils.egg-info/requires.txt
--- old/oslo.utils-3.41.5/oslo.utils.egg-info/requires.txt 2020-03-04
02:02:34.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo.utils.egg-info/requires.txt 2020-04-07
12:09:28.000000000 +0200
@@ -7,9 +7,3 @@
netifaces>=0.10.4
debtcollector>=1.2.0
pyparsing>=2.1.0
-
-[:(python_version<'3.3')]
-monotonic>=0.6
-
-[:(python_version=='2.7' or python_version=='2.6')]
-funcsigs>=1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/imageutils.py
new/oslo.utils-4.1.1/oslo_utils/imageutils.py
--- old/oslo.utils-3.41.5/oslo_utils/imageutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/imageutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -45,7 +45,7 @@
r"\s+(.*?)\)\s*$"), re.I)
TOP_LEVEL_RE = re.compile(r"^([\w\d\s\_\-]+):(.*)$")
SIZE_RE = re.compile(r"([0-9]+[eE][-+][0-9]+|\d*\.?\d+)"
- "\s*(\w+)?(\s*\(\s*(\d+)\s+bytes\s*\))?",
+ r"\s*(\w+)?(\s*\(\s*(\d+)\s+bytes\s*\))?",
re.I)
def __init__(self, cmd_output=None, format='human'):
@@ -59,6 +59,7 @@
self.disk_size = details.get('actual-size')
self.snapshots = details.get('snapshots', [])
self.encrypted = details.get('encrypted')
+ self.format_specific = details.get('format-specific')
else:
details = self._parse(cmd_output or '')
self.image = details.get('image')
@@ -69,6 +70,7 @@
self.disk_size = details.get('disk_size')
self.snapshots = details.get('snapshot_list', [])
self.encrypted = details.get('encrypted')
+ self.format_specific = None
def __str__(self):
lines = [
@@ -83,6 +85,8 @@
lines.append("snapshots: %s" % self.snapshots)
if self.encrypted:
lines.append("encrypted: %s" % self.encrypted)
+ if self.format_specific:
+ lines.appened("format_specific: %s" % self.format_specific)
return "\n".join(lines)
def _canonicalize(self, field):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/secretutils.py
new/oslo.utils-4.1.1/oslo_utils/secretutils.py
--- old/oslo.utils-3.41.5/oslo_utils/secretutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/secretutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -39,6 +39,7 @@
result |= ord(x) ^ ord(y)
return result == 0
+
try:
constant_time_compare = hmac.compare_digest
except AttributeError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/strutils.py
new/oslo.utils-4.1.1/oslo_utils/strutils.py
--- old/oslo.utils-3.41.5/oslo_utils/strutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/strutils.py 2020-04-07 12:08:13.000000000
+0200
@@ -83,11 +83,11 @@
r'([-]{2}%(key)s[0-9]*\s+)[^\'^\"^=^\s]+([\s]*)',
r'(<%(key)s[0-9]*>)[^<]*(</%(key)s[0-9]*>)',
r'([\"\']%(key)s[0-9]*[\"\']\s*:\s*[\"\'])[^\"\']*'
- '([\"\'])',
+ r'([\"\'])',
r'([\'"][^"\']*%(key)s[0-9]*[\'"]\s*:\s*u?[\'"])[^\"\']*'
- '([\'"])',
+ r'([\'"])',
r'([\'"][^\'"]*%(key)s[0-9]*[\'"]\s*,\s*\'--?[A-z]+'
- '\'\s*,\s*u?[\'"])[^\"\']*([\'"])',
+ r'\'\s*,\s*u?[\'"])[^\"\']*([\'"])',
r'(%(key)s[0-9]*\s*--?[A-z]+\s*)\S+(\s*)']
# NOTE(dhellmann): Keep a separate list of patterns by key so we only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-3.41.5/oslo_utils/tests/test_eventletutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_eventletutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_eventletutils.py
2020-03-04 02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_eventletutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -13,11 +13,11 @@
# under the License.
import threading
+from unittest import mock
import warnings
import eventlet
from eventlet import greenthread
-import mock
from oslotest import base as test_base
import six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/tests/test_excutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_excutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_excutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_excutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -13,19 +13,15 @@
# under the License.
import logging
+from unittest import mock
import fixtures
-import mock
from oslotest import base as test_base
-from oslotest import moxstubout
from oslo_utils import excutils
from oslo_utils import timeutils
-mox = moxstubout.mox
-
-
class Fail1(excutils.CausedByException):
pass
@@ -168,159 +164,266 @@
def setUp(self):
super(ForeverRetryUncaughtExceptionsTest, self).setUp()
- moxfixture = self.useFixture(moxstubout.MoxStubout())
- self.mox = moxfixture.mox
+
+ self._exceptions = []
+
+ self.useFixture(fixtures.MockPatch('time.sleep', return_value=None))
@excutils.forever_retry_uncaught_exceptions
def exception_generator(self):
- exc = self.exception_to_raise()
- while exc is not None:
- raise exc
- exc = self.exception_to_raise()
-
- def exception_to_raise(self):
- return None
-
- def my_time_sleep(self, arg):
- pass
-
- def exc_retrier_common_start(self):
- patch_time = fixtures.MockPatch(
- 'time.sleep', self.my_time_sleep)
- self.useFixture(patch_time)
-
- self.mox.StubOutWithMock(logging, 'exception')
- self.mox.StubOutWithMock(timeutils, 'now',
- use_mock_anything=True)
- self.mox.StubOutWithMock(self, 'exception_to_raise')
-
- def exc_retrier_sequence(self, exc_id=None,
- exc_count=None, before_timestamp_calls=(),
- after_timestamp_calls=()):
- self.exception_to_raise().AndReturn(
- Exception('unexpected %d' % exc_id))
- # Timestamp calls that happen before the logging is possibly triggered.
- for timestamp in before_timestamp_calls:
- timeutils.now().AndReturn(timestamp)
- if exc_count != 0:
- logging.exception(mox.In(
- 'Unexpected exception occurred %d time(s)' % exc_count))
- # Timestamp calls that happen after the logging is possibly triggered.
- for timestamp in after_timestamp_calls:
- timeutils.now().AndReturn(timestamp)
+ while self._exceptions:
+ raise self._exceptions.pop(0)
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_1exc_gives_1log(self, mock_now, mock_log):
+
+ self._exceptions = [
+ Exception('unexpected %d' % 1),
+ ]
+ mock_now.side_effect = [0]
- def exc_retrier_common_end(self):
- self.exception_to_raise().AndReturn(None)
- self.mox.ReplayAll()
self.exception_generator()
- def test_exc_retrier_1exc_gives_1log(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1, exc_count=1,
- after_timestamp_calls=[0])
- self.exc_retrier_common_end()
-
- def test_exc_retrier_same_10exc_1min_gives_1log(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- after_timestamp_calls=[0], exc_count=1)
- # By design, the following exception don't get logged because they
+ self.assertEqual([], self._exceptions)
+ # log should only be called once
+ mock_log.assert_called_once_with(
+ 'Unexpected exception occurred %d time(s)... retrying.' % 1
+ )
+ mock_now.assert_has_calls([
+ mock.call(),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_same_10exc_1min_gives_1log(self, mock_now, mock_log):
+ self._exceptions = [
+ Exception('unexpected 1'),
+ ]
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect = [0]
+
+ # By design, the following exceptions won't get logged because they
# are within the same minute.
for i in range(2, 11):
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[i],
- exc_count=0)
- self.exc_retrier_common_end()
-
- def test_exc_retrier_same_2exc_2min_gives_2logs(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- after_timestamp_calls=[0], exc_count=1)
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[65], exc_count=1,
- after_timestamp_calls=[65, 66])
- self.exc_retrier_common_end()
-
- def test_exc_retrier_same_10exc_2min_gives_2logs(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- after_timestamp_calls=[0], exc_count=1)
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly
+ # triggered.
+ mock_now_side_effect.append(i)
+
+ mock_now.side_effect = mock_now_side_effect
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(10, len(mock_now.mock_calls))
+ self.assertEqual(1, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_same_2exc_2min_gives_2logs(self, mock_now, mock_log):
+ self._exceptions = [
+ Exception('unexpected 1'),
+ Exception('unexpected 1'),
+ ]
+
+ mock_now.side_effect = [
+ # Timestamp calls that happen after the logging is possibly
+ # triggered
+ 0,
+ # Timestamp calls that happen before the logging is possibly
+ # triggered
+ 65,
+ # Timestamp calls that happen after the logging is possibly
+ # triggered.
+ 65,
+ 66,
+ ]
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(4, len(mock_now.mock_calls))
+ self.assertEqual(2, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_same_10exc_2min_gives_2logs(self, mock_now, mock_log):
+ self._exceptions = [
+ Exception('unexpected 1'),
+ ]
+
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect = [
+ 0,
+ ]
+
for ts in [12, 23, 34, 45]:
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[ts],
- exc_count=0)
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly
+ # triggered.
+ mock_now_side_effect.append(ts)
+
# The previous 4 exceptions are counted here
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[106],
- exc_count=5,
- after_timestamp_calls=[106, 107])
+
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ mock_now_side_effect.append(106)
+
+ for ts in [106, 107]:
+ # Timestamp calls that happen after the logging is possibly
+ # triggered.
+ mock_now_side_effect.append(ts)
+
# Again, the following are not logged due to being within
# the same minute
+
for ts in [117, 128, 139, 150]:
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[ts],
- exc_count=0)
- self.exc_retrier_common_end()
-
- def test_exc_retrier_mixed_4exc_1min_gives_2logs(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- # The stop watch will be started,
- # which will consume one timestamp call.
- after_timestamp_calls=[0], exc_count=1)
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly
+ # triggered.
+ mock_now_side_effect.append(ts)
+
+ mock_now.side_effect = mock_now_side_effect
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(12, len(mock_now.mock_calls))
+ self.assertEqual(2, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 5 time(s)... retrying.'),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_mixed_4exc_1min_gives_2logs(self, mock_now, mock_log):
+ # The stop watch will be started, which will consume one timestamp
+ # call.
+
+ self._exceptions = [
+ Exception('unexpected 1'),
+ ]
+ # Timestamp calls that happen after the logging is possibly
+ # triggered.
+ mock_now_side_effect = [0]
+
# By design, this second 'unexpected 1' exception is not counted. This
# is likely a rare thing and is a sacrifice for code simplicity.
- self.exc_retrier_sequence(exc_id=1, exc_count=0,
- # Since the exception will be the same
- # the expiry method will be called, which
- # uses up a timestamp call.
- before_timestamp_calls=[5])
- self.exc_retrier_sequence(exc_id=2, exc_count=1,
- # The watch should get reset, which uses
- # up two timestamp calls.
- after_timestamp_calls=[10, 20])
- # Again, trailing exceptions within a minute are not counted.
- self.exc_retrier_sequence(exc_id=2, exc_count=0,
- # Since the exception will be the same
- # the expiry method will be called, which
- # uses up a timestamp call.
- before_timestamp_calls=[25])
- self.exc_retrier_common_end()
-
- def test_exc_retrier_mixed_4exc_2min_gives_2logs(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- # The stop watch will now be started.
- after_timestamp_calls=[0], exc_count=1)
+ self._exceptions.append(Exception('unexpected 1'))
+
+ # Timestamp calls that happen before the logging is possibly triggered.
+ # Since the exception will be the same the expiry method will be
+ # called, which uses up a timestamp call.
+ mock_now_side_effect.append(5)
+
+ self._exceptions.append(Exception('unexpected 2'))
+ # Timestamp calls that happen after the logging is possibly triggered.
+ # The watch should get reset, which uses up two timestamp calls.
+ mock_now_side_effect.extend([10, 20])
+
+ self._exceptions.append(Exception('unexpected 2'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ # Since the exception will be the same the expiry method will be
+ # called, which uses up a timestamp call.
+ mock_now_side_effect.append(25)
+
+ mock_now.side_effect = mock_now_side_effect
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(5, len(mock_now.mock_calls))
+ self.assertEqual(2, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_mixed_4exc_2min_gives_2logs(self, mock_now, mock_log):
+
+ self._exceptions = [
+ Exception('unexpected 1'),
+ ]
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect = [0]
+
# Again, this second exception of the same type is not counted
# for the sake of code simplicity.
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[10], exc_count=0)
+
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ mock_now_side_effect.append(10)
+
# The difference between this and the previous case is the log
# is also triggered by more than a minute expiring.
- self.exc_retrier_sequence(exc_id=2, exc_count=1,
- # The stop watch will now be restarted.
- after_timestamp_calls=[100, 105])
- self.exc_retrier_sequence(exc_id=2,
- before_timestamp_calls=[110], exc_count=0)
- self.exc_retrier_common_end()
-
- def test_exc_retrier_mixed_4exc_2min_gives_3logs(self):
- self.exc_retrier_common_start()
- self.exc_retrier_sequence(exc_id=1,
- # The stop watch will now be started.
- after_timestamp_calls=[0], exc_count=1)
+
+ self._exceptions.append(Exception('unexpected 2'))
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect.extend([100, 105])
+
+ self._exceptions.append(Exception('unexpected 2'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ mock_now_side_effect.append(110)
+
+ mock_now.side_effect = mock_now_side_effect
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(5, len(mock_now.mock_calls))
+ self.assertEqual(2, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ ])
+
+ @mock.patch.object(logging, 'exception')
+ @mock.patch.object(timeutils, 'now')
+ def test_exc_retrier_mixed_4exc_2min_gives_3logs(self, mock_now, mock_log):
+ self._exceptions = [
+ Exception('unexpected 1'),
+ ]
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect = [0]
+
# This time the second 'unexpected 1' exception is counted due
# to the same exception occurring same when the minute expires.
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[10], exc_count=0)
- self.exc_retrier_sequence(exc_id=1,
- before_timestamp_calls=[100],
- after_timestamp_calls=[100, 105],
- exc_count=2)
- self.exc_retrier_sequence(exc_id=2, exc_count=1,
- after_timestamp_calls=[110, 111])
- self.exc_retrier_common_end()
+
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ mock_now_side_effect.append(10)
+
+ self._exceptions.append(Exception('unexpected 1'))
+ # Timestamp calls that happen before the logging is possibly triggered.
+ mock_now_side_effect.extend([100, 100, 105])
+
+ self._exceptions.append(Exception('unexpected 2'))
+ # Timestamp calls that happen after the logging is possibly triggered.
+ mock_now_side_effect.extend([110, 111])
+
+ mock_now.side_effect = mock_now_side_effect
+
+ self.exception_generator()
+
+ self.assertEqual([], self._exceptions)
+ self.assertEqual(7, len(mock_now.mock_calls))
+ self.assertEqual(3, len(mock_log.mock_calls))
+ mock_log.assert_has_calls([
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 2 time(s)... retrying.'),
+ mock.call('Unexpected exception occurred 1 time(s)... retrying.'),
+ ])
class ExceptionFilterTest(test_base.BaseTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/tests/test_fnmatch.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_fnmatch.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_fnmatch.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_fnmatch.py 2020-04-07
12:08:13.000000000 +0200
@@ -16,8 +16,8 @@
import ntpath
import posixpath
import sys
+from unittest import mock
-import mock
from oslotest import base
import six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-3.41.5/oslo_utils/tests/test_imageutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_imageutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_imageutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_imageutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -52,6 +52,8 @@
exp_virtual_size=2048)),
('2_KiB_with_byte_hint', dict(virtual_size='2 KiB (2048 bytes)',
exp_virtual_size=2048)),
+ ('1e+03_MiB', dict(virtual_size='1e+03 MiB',
+ exp_virtual_size=1048576000)),
]
_disk_size = [
@@ -69,7 +71,7 @@
exp_disk_size=3328599655)),
('unavailable', dict(disk_size='unavailable',
exp_disk_size=0)),
- ('1e+03 MiB', dict(disk_size='1e+03 MiB',
+ ('1e+03_MiB', dict(disk_size='1e+03 MiB',
exp_disk_size=1048576000)),
]
@@ -135,6 +137,7 @@
image_info = imageutils.QemuImgInfo(example_output)
self._base_validation(image_info)
+
ImageUtilsRawTestCase.generate_scenarios()
@@ -201,6 +204,7 @@
if self.encrypted is not None:
self.assertEqual(image_info.encrypted, self.encrypted)
+
ImageUtilsQemuTestCase.generate_scenarios()
@@ -222,7 +226,8 @@
"filename": "fake_img",
"cluster-size": 65536,
"format": "qcow2",
- "actual-size": 13168640
+ "actual-size": 13168640,
+ "format-specific": {"data": {"foo": "bar"}}
}'''
image_info = imageutils.QemuImgInfo(img_output, format='json')
self.assertEqual(41126400, image_info.virtual_size)
@@ -230,6 +235,7 @@
self.assertEqual(65536, image_info.cluster_size)
self.assertEqual('qcow2', image_info.file_format)
self.assertEqual(13168640, image_info.disk_size)
+ self.assertEqual("bar", image_info.format_specific["data"]["foo"])
def test_qemu_img_info_json_format_blank(self):
img_output = '{}'
@@ -239,3 +245,4 @@
self.assertIsNone(image_info.cluster_size)
self.assertIsNone(image_info.file_format)
self.assertIsNone(image_info.disk_size)
+ self.assertIsNone(image_info.format_specific)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/tests/test_netutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_netutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_netutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_netutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -15,8 +15,8 @@
import contextlib
import socket
+from unittest import mock
-import mock
import netifaces
from oslotest import base as test_base
import six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/tests/test_strutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_strutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_strutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_strutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -18,9 +18,9 @@
import collections
import copy
import math
+from unittest import mock
import ddt
-import mock
from oslotest import base as test_base
import six
import testscenarios
@@ -291,6 +291,7 @@
else:
self.assertAlmostEqual(actual, expected)
+
StringToBytesTest.generate_scenarios()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/oslo_utils/tests/test_timeutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/test_timeutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/test_timeutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/test_timeutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -17,9 +17,9 @@
import datetime
import logging
import time
+from unittest import mock
import iso8601
-import mock
from oslotest import base as test_base
from testtools import matchers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-3.41.5/oslo_utils/tests/tests_encodeutils.py
new/oslo.utils-4.1.1/oslo_utils/tests/tests_encodeutils.py
--- old/oslo.utils-3.41.5/oslo_utils/tests/tests_encodeutils.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/oslo_utils/tests/tests_encodeutils.py 2020-04-07
12:08:13.000000000 +0200
@@ -15,7 +15,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-import mock
+from unittest import mock
+
from oslo_i18n import fixture as oslo_i18n_fixture
from oslotest import base as test_base
import six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.utils-3.41.5/releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
new/oslo.utils-4.1.1/releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
---
old/oslo.utils-3.41.5/releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.utils-4.1.1/releasenotes/notes/drop-python27-support-f97f680651693b47.yaml
2020-04-07 12:08:13.000000000 +0200
@@ -0,0 +1,5 @@
+---
+upgrade:
+ - |
+ Support for Python 2.7 has been dropped. The minimum version of Python now
+ supported is Python 3.6.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/releasenotes/source/conf.py
new/oslo.utils-4.1.1/releasenotes/source/conf.py
--- old/oslo.utils-3.41.5/releasenotes/source/conf.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/releasenotes/source/conf.py 2020-04-07
12:08:13.000000000 +0200
@@ -57,7 +57,6 @@
master_doc = 'index'
# General information about the project.
-project = u'oslo.utils Release Notes'
copyright = u'2016, oslo.utils Developers'
# Release notes do not need a version in the title, they span
@@ -146,10 +145,6 @@
# directly to the root of the documentation.
# html_extra_path = []
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
# html_use_smartypants = True
@@ -193,17 +188,6 @@
# -- Options for LaTeX output ---------------------------------------------
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- # 'preamble': '',
-}
-
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/releasenotes/source/index.rst
new/oslo.utils-4.1.1/releasenotes/source/index.rst
--- old/oslo.utils-3.41.5/releasenotes/source/index.rst 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/releasenotes/source/index.rst 2020-04-07
12:08:13.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ train
stein
rocky
queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/releasenotes/source/train.rst
new/oslo.utils-4.1.1/releasenotes/source/train.rst
--- old/oslo.utils-3.41.5/releasenotes/source/train.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.utils-4.1.1/releasenotes/source/train.rst 2020-04-07
12:08:13.000000000 +0200
@@ -0,0 +1,6 @@
+==========================
+Train Series Release Notes
+==========================
+
+.. release-notes::
+ :branch: stable/train
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/requirements.txt
new/oslo.utils-4.1.1/requirements.txt
--- old/oslo.utils-3.41.5/requirements.txt 2020-03-04 02:01:40.000000000
+0100
+++ new/oslo.utils-4.1.1/requirements.txt 2020-04-07 12:08:13.000000000
+0200
@@ -9,10 +9,8 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
six>=1.10.0 # MIT
-funcsigs>=1.0.0;python_version=='2.7' or python_version=='2.6' # Apache-2.0
iso8601>=0.1.11 # MIT
oslo.i18n>=3.15.3 # Apache-2.0
-monotonic>=0.6;python_version<'3.3' # Apache-2.0
pytz>=2013.6 # MIT
netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/setup.cfg
new/oslo.utils-4.1.1/setup.cfg
--- old/oslo.utils-3.41.5/setup.cfg 2020-03-04 02:02:35.000000000 +0100
+++ new/oslo.utils-4.1.1/setup.cfg 2020-04-07 12:09:28.000000000 +0200
@@ -6,6 +6,7 @@
author = OpenStack
author-email = [email protected]
home-page = https://docs.openstack.org/oslo.utils/latest/
+python-requires = >=3.6
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
@@ -13,11 +14,11 @@
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
- Programming Language :: Python :: 2
- Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3 :: Only
+ Programming Language :: Python :: Implementation :: CPython
[files]
packages =
@@ -37,9 +38,6 @@
mapping_file = babel.cfg
output_file = oslo_utils/locale/oslo_utils.pot
-[wheel]
-universal = 1
-
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/setup.py
new/oslo.utils-4.1.1/setup.py
--- old/oslo.utils-3.41.5/setup.py 2020-03-04 02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/setup.py 2020-04-07 12:08:13.000000000 +0200
@@ -13,17 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
-# In python < 2.7.4, a lazy loading of package `pbr` will break
-# setuptools if some other modules registered functions in `atexit`.
-# solution from: http://bugs.python.org/issue15881#msg170215
-try:
- import multiprocessing # noqa
-except ImportError:
- pass
-
setuptools.setup(
setup_requires=['pbr>=2.0.0'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/test-requirements.txt
new/oslo.utils-4.1.1/test-requirements.txt
--- old/oslo.utils-3.41.5/test-requirements.txt 2020-03-04 02:01:40.000000000
+0100
+++ new/oslo.utils-4.1.1/test-requirements.txt 2020-04-07 12:08:13.000000000
+0200
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking>=1.1.0,<1.2.0 # Apache-2.0
+hacking>=3.0,<3.1.0 # Apache-2.0
eventlet>=0.18.2,!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
@@ -17,9 +17,6 @@
# deps = {[testenv]deps} coverage
coverage!=4.4,>=4.0 # Apache-2.0
-# mocking framework
-mock>=2.0.0 # BSD
-
# used for oslotest cross-testing scripts
oslo.config>=5.2.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/tools/perf_test_mask_password.py
new/oslo.utils-4.1.1/tools/perf_test_mask_password.py
--- old/oslo.utils-3.41.5/tools/perf_test_mask_password.py 2020-03-04
02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/tools/perf_test_mask_password.py 2020-04-07
12:08:13.000000000 +0200
@@ -37,7 +37,7 @@
for pattern in strutils._SANITIZE_PATTERNS_2['admin_pass']:
print('\ntesting %s' % pattern.pattern)
t = timeit.Timer(
- "re.sub(pattern, r'\g<1>***\g<2>', payload)",
+ r"re.sub(pattern, r'\g<1>***\g<2>', payload)",
"""
import re
payload = '''%s'''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.utils-3.41.5/tox.ini
new/oslo.utils-4.1.1/tox.ini
--- old/oslo.utils-3.41.5/tox.ini 2020-03-04 02:01:40.000000000 +0100
+++ new/oslo.utils-4.1.1/tox.ini 2020-04-07 12:08:13.000000000 +0200
@@ -1,58 +1,56 @@
[tox]
-minversion = 2.0
-envlist = py27,py37,pep8
+minversion = 3.1
+envlist = py37,pep8
+ignore_basepython_conflict = true
[testenv]
-install_command = pip install {opts} {packages}
+basepython = python3
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train}
+
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = stestr run --slowest {posargs}
-[testenv:py27]
-basepython = python2.7
-
[testenv:pep8]
-basepython = python3
commands =
flake8
# Run security linter
bandit -r oslo_utils -x tests -n5
[testenv:venv]
-basepython = python3
commands = {posargs}
[testenv:docs]
-basepython = python3
whitelist_externals = rm
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+ -r{toxinidir}/doc/requirements.txt
commands =
- rm -fr doc/build
- sphinx-build -W -b html doc/source doc/build/html
+ rm -fr doc/build
+ sphinx-build -W --keep-going -b html doc/source doc/build/html
[testenv:cover]
-basepython = python3
commands = python setup.py test --coverage --coverage-package-name=oslo_utils
--testr-args='{posargs}'
[testenv:bandit]
-basepython = python3
commands = bandit -r oslo_utils -x tests -n5
[flake8]
# E731 skipped as assign a lambda expression
-ignore = E123,E731,H405
+# W504 line break after binary operator
+ignore = E123,E731,H405,W504
show-source = True
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py
[testenv:releasenotes]
-basepython = python3
-deps = -r{toxinidir}/doc/requirements.txt
-commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html
releasenotes/source releasenotes/build/html
+whitelist_externals = rm
+deps =
+ {[testenv:docs]deps}
+commands =
+ rm -rf releasenotes/build
+ sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html
releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
-basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt