Hello community, here is the log from the commit of package python-oslo.utils for openSUSE:Factory checked in at 2018-09-07 15:39:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old) and /work/SRC/openSUSE:Factory/.python-oslo.utils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.utils" Fri Sep 7 15:39:12 2018 rev:16 rq:633110 version:3.36.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes 2018-03-19 23:36:36.705176773 +0100 +++ /work/SRC/openSUSE:Factory/.python-oslo.utils.new/python-oslo.utils.changes 2018-09-07 15:39:13.606547546 +0200 @@ -1,0 +2,31 @@ +Mon Sep 3 09:00:25 UTC 2018 - cloud-de...@suse.de + +- update to version 3.36.4 + - Update reno for stable/queens + - Switch to stestr + - Imported Translations from Zanata + - Add release notes link to README + - Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)' + - Fix breaking unit tests due to iso8601 changes + - Capitalize Oslo + - Add private_key to the list of sanitized keys + - Fix exception with secretutils + - Clean imports in code + - Remove stale pip-missing-reqs tox test + - Update links in README + - Add bindep.txt file to prevent fallback to generic list + - Trivial: Update pypi url to new url + - Add -W for document build + - Handle non-string keys appropriately + - eventletutils: Fix behavior discrepency when reusing Events + - Clean old output before new doc builds + - Document specs_matcher.py functions + - set default python to python3 + - fix tox python3 overrides + - Fix project name in user docs + - Remove sphinx settings from setup.cfg + - Updated from global requirements + - add lower-constraints job +- remove 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch (upstream) + +------------------------------------------------------------------- Old: ---- 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch oslo.utils-3.35.0.tar.gz New: ---- oslo.utils-3.36.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.utils.spec ++++++ --- /var/tmp/diff_new_pack.xBOqRT/_old 2018-09-07 15:39:14.058547061 +0200 +++ /var/tmp/diff_new_pack.xBOqRT/_new 2018-09-07 15:39:14.062547057 +0200 @@ -17,57 +17,56 @@ Name: python-oslo.utils -Version: 3.35.0 +Version: 3.36.4 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.35.0.tar.gz -Patch1: 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch +URL: https://launchpad.net/oslo.utils +Source0: https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.36.4.tar.gz BuildRequires: openstack-macros BuildRequires: python2-Babel BuildRequires: python2-ddt -BuildRequires: python2-debtcollector -BuildRequires: python2-fixtures >= 3.0.0 -BuildRequires: python2-iso8601 +BuildRequires: python2-debtcollector >= 1.2.0 +BuildRequires: python2-fixtures +BuildRequires: python2-iso8601 >= 0.1.11 BuildRequires: python2-mock -BuildRequires: python2-monotonic -BuildRequires: python2-netaddr -BuildRequires: python2-netifaces -BuildRequires: python2-oslo.i18n +BuildRequires: python2-monotonic >= 0.6 +BuildRequires: python2-netaddr >= 0.7.18 +BuildRequires: python2-netifaces >= 0.10.4 +BuildRequires: python2-oslo.i18n >= 3.15.3 BuildRequires: python2-oslotest -BuildRequires: python2-pbr -BuildRequires: python2-pyparsing +BuildRequires: python2-pbr >= 2.0.0 +BuildRequires: python2-pyparsing >= 2.1.0 BuildRequires: python2-python-subunit -BuildRequires: python2-testrepository +BuildRequires: python2-stestr BuildRequires: python2-testscenarios BuildRequires: python2-testtools BuildRequires: python3-Babel BuildRequires: python3-ddt -BuildRequires: python3-debtcollector -BuildRequires: python3-fixtures >= 3.0.0 -BuildRequires: python3-iso8601 +BuildRequires: python3-debtcollector >= 1.2.0 +BuildRequires: python3-fixtures +BuildRequires: python3-iso8601 >= 0.1.11 BuildRequires: python3-mock -BuildRequires: python3-monotonic -BuildRequires: python3-netaddr -BuildRequires: python3-netifaces -BuildRequires: python3-oslo.i18n +BuildRequires: python3-monotonic >= 0.6 +BuildRequires: python3-netaddr >= 0.7.18 +BuildRequires: python3-netifaces >= 0.10.4 +BuildRequires: python3-oslo.i18n >= 3.15.3 BuildRequires: python3-oslotest -BuildRequires: python3-pbr -BuildRequires: python3-pyparsing +BuildRequires: python3-pbr >= 2.0.0 +BuildRequires: python3-pyparsing >= 2.1.0 BuildRequires: python3-python-subunit -BuildRequires: python3-testrepository +BuildRequires: python3-stestr BuildRequires: python3-testscenarios BuildRequires: python3-testtools -Requires: python-debtcollector -Requires: python-iso8601 -Requires: python-monotonic -Requires: python-netaddr -Requires: python-netifaces -Requires: python-oslo.i18n -Requires: python-pyparsing -Requires: python-pytz +Requires: python-debtcollector >= 1.2.0 +Requires: python-iso8601 >= 0.1.11 +Requires: python-monotonic >= 0.6 +Requires: python-netaddr >= 0.7.18 +Requires: python-netifaces >= 0.10.4 +Requires: python-oslo.i18n >= 3.15.3 +Requires: python-pyparsing >= 2.1.0 +Requires: python-pytz >= 2013.6 Requires: python-six >= 1.10.0 BuildArch: noarch %python_subpackages @@ -86,7 +85,7 @@ Documentation for OpenStack utils library. %prep -%autosetup -p1 -n oslo.utils-3.35.0 +%autosetup -p1 -n oslo.utils-3.36.4 sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg %py_req_cleanup @@ -98,14 +97,13 @@ %python_install # generate html docs -%{__python2} setup.py build_sphinx +#%{__python2} setup.py build_sphinx +PBR_VERSION=3.36.4 sphinx-build -b html doc/source doc/build/html # remove the sphinx-build leftovers rm -rf doc/build/html/.{doctrees,buildinfo} %check -%{python_expand rm -rf .testrepository -$python setup.py test -} +%python_exec -m stestr.cli run %files %{python_files} %license LICENSE ++++++ _service ++++++ --- /var/tmp/diff_new_pack.xBOqRT/_old 2018-09-07 15:39:14.086547031 +0200 +++ /var/tmp/diff_new_pack.xBOqRT/_new 2018-09-07 15:39:14.086547031 +0200 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/openstack/oslo.utils/oslo.utils.spec.j2</param> + <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/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/requirements/stable/queens/requirements.txt</param> + <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/rocky/requirements.txt</param> <param name="changelog-email">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,oslo.utils</param> </service> ++++++ oslo.utils-3.35.0.tar.gz -> oslo.utils-3.36.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/.stestr.conf new/oslo.utils-3.36.4/.stestr.conf --- old/oslo.utils-3.35.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.36.4/.stestr.conf 2018-07-20 03:08:41.000000000 +0200 @@ -0,0 +1,3 @@ +[DEFAULT] +test_path=./oslo_utils/tests +top_path=./ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/.testr.conf new/oslo.utils-3.36.4/.testr.conf --- old/oslo.utils-3.35.0/.testr.conf 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/.testr.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -[DEFAULT] -test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ - OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ - OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ - ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION -test_id_option=--load-list $IDFILE -test_list_option=--list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/.zuul.yaml new/oslo.utils-3.36.4/.zuul.yaml --- old/oslo.utils-3.35.0/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.36.4/.zuul.yaml 2018-07-20 03:08:41.000000000 +0200 @@ -0,0 +1,7 @@ +- project: + check: + jobs: + - openstack-tox-lower-constraints + gate: + jobs: + - openstack-tox-lower-constraints diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/AUTHORS new/oslo.utils-3.36.4/AUTHORS --- old/oslo.utils-3.35.0/AUTHORS 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/AUTHORS 2018-07-20 03:11:33.000000000 +0200 @@ -69,17 +69,21 @@ Johannes Erdfelt <johannes.erdf...@rackspace.com> John Eckersberg <jecke...@redhat.com> John L. Villalovos <john.l.villalo...@intel.com> +John L. Villalovos <openstack....@sodarock.com> Jordan Pittier <jordan.pitt...@scality.com> Joshua Harlow <harlo...@gmail.com> Joshua Harlow <harlo...@yahoo-inc.com> Joshua Harlow <jxhar...@godaddy.com> Julien Danjou <jul...@danjou.info> +Kenneth Giusti <kgiu...@gmail.com> Kevin Houdebert <ke...@qwazerty.eu> Lucas Alvares Gomes <lucasago...@gmail.com> +Matthew Booth <mbo...@redhat.com> Mehdi Abaakouk <mehdi.abaak...@enovance.com> Michael Wilson <geekinu...@gmail.com> Monty Taylor <mord...@inaugust.com> Morgan Fainberg <morgan.fainb...@gmail.com> +Nguyen Hung Phuong <phuon...@vn.fujitsu.com> Noorul Islam K M <noo...@noorul.com> Oleg Bondarev <obonda...@mirantis.com> Oleksii Chuprykov <ochupry...@mirantis.com> @@ -97,6 +101,7 @@ Russell Bryant <rbry...@redhat.com> SandyWalsh <sandy.wa...@rackspace.com> Sean Dague <sda...@linux.vnet.ibm.com> +Sean McGinnis <sean.mcgin...@huawei.com> Sergey Kraynev <skray...@mirantis.com> Sergey Lukjanov <slukja...@mirantis.com> Sirisha Devineni <sirisha_devin...@persistent.co.in> @@ -108,21 +113,25 @@ Swapnil Kulkarni (coolsvap) <m...@coolsvap.net> Timur Sufiev <tsuf...@mirantis.com> Tony Breeds <t...@bakeyournoodle.com> +Tovin Seven <vin...@vn.fujitsu.com> Valeriy Ponomaryov <vponomar...@mirantis.com> Victor Sergeyev <vserge...@mirantis.com> Victor Stinner <victor.stin...@enovance.com> Victor Stinner <vstin...@redhat.com> +Vu Cong Tuan <tua...@vn.fujitsu.com> Wen Zhi Yu <wenzhi...@163.com> Yaguang Tang <heut2...@gmail.com> Young <afe.yo...@gmail.com> Yunhong, Jiang <yunhong.ji...@intel.com> Zane Bitter <zbit...@redhat.com> ZhiQiang Fan <aji.zq...@gmail.com> +ZhongShengping <chd...@163.com> Zhongyue Luo <lzye...@gmail.com> Zhongyue Luo <zhongyue....@intel.com> Zuul <z...@review.openstack.org> avnish <avnish....@nectechnologies.in> bhagyashris <bhagyashri.shew...@nttdata.com> +changxun <zho...@dtdream.com> dharmendra <dharmendra.kushw...@nectechnologies.in> ekudryashova <ekudryash...@mirantis.com> gecong1973 <ge.c...@zte.com.cn> @@ -138,5 +147,6 @@ pran1990 <pranes...@gmail.com> ricolin <rico....@easystack.cn> sridhargaddam <sridhar.gad...@enovance.com> +sunyandi <su...@inspur.com> zhangsong <zhangs...@cmss.chinamobile.com> zhengyao1 <zheng.y...@zte.com.cn> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/ChangeLog new/oslo.utils-3.36.4/ChangeLog --- old/oslo.utils-3.35.0/ChangeLog 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/ChangeLog 2018-07-20 03:11:33.000000000 +0200 @@ -1,6 +1,55 @@ CHANGES ======= +3.36.4 +------ + +* Handle non-string keys appropriately +* Switch to stestr +* Add release notes link to README + +3.36.3 +------ + +* fix tox python3 overrides +* Fix exception with secretutils + +3.36.2 +------ + +* Add private\_key to the list of sanitized keys +* Remove stale pip-missing-reqs tox test +* Capitalize Oslo + +3.36.1 +------ + +* Trivial: Update pypi url to new url +* set default python to python3 +* eventletutils: Fix behavior discrepency when reusing Events +* Fix project name in user docs +* add lower-constraints job +* Clean old output before new doc builds +* Remove sphinx settings from setup.cfg +* Add bindep.txt file to prevent fallback to generic list +* Updated from global requirements + +3.36.0 +------ + +* Add -W for document build +* Imported Translations from Zanata +* Update links in README +* Imported Translations from Zanata +* Fix breaking unit tests due to iso8601 changes +* Document specs\_matcher.py functions +* Clean imports in code +* Update reno for stable/queens +* Updated from global requirements +* Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)' +* Updated from global requirements +* Updated from global requirements + 3.35.0 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/PKG-INFO new/oslo.utils-3.36.4/PKG-INFO --- old/oslo.utils-3.35.0/PKG-INFO 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/PKG-INFO 2018-07-20 03:11:33.000000000 +0200 @@ -1,18 +1,17 @@ Metadata-Version: 1.1 Name: oslo.utils -Version: 3.35.0 +Version: 3.36.4 Summary: Oslo Utility library Home-page: https://docs.openstack.org/oslo.utils/latest/ Author: OpenStack Author-email: openstack-...@lists.openstack.org License: UNKNOWN -Description-Content-Type: UNKNOWN Description: ======================== Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/oslo.utils.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -21,11 +20,11 @@ ========== .. image:: https://img.shields.io/pypi/v/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Latest Version .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Downloads The oslo.utils library provides support for common utility type functions, @@ -35,6 +34,7 @@ * Documentation: https://docs.openstack.org/oslo.utils/latest/ * Source: https://git.openstack.org/cgit/openstack/oslo.utils * Bugs: https://bugs.launchpad.net/oslo.utils + * Release notes: https://docs.openstack.org/releasenotes/oslo.utils/ Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/README.rst new/oslo.utils-3.36.4/README.rst --- old/oslo.utils-3.35.0/README.rst 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/README.rst 2018-07-20 03:08:41.000000000 +0200 @@ -2,8 +2,8 @@ Team and repository tags ======================== -.. image:: http://governance.openstack.org/badges/oslo.utils.svg - :target: http://governance.openstack.org/reference/tags/index.html +.. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -12,11 +12,11 @@ ========== .. image:: https://img.shields.io/pypi/v/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Latest Version .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Downloads The oslo.utils library provides support for common utility type functions, @@ -26,3 +26,4 @@ * Documentation: https://docs.openstack.org/oslo.utils/latest/ * Source: https://git.openstack.org/cgit/openstack/oslo.utils * Bugs: https://bugs.launchpad.net/oslo.utils +* Release notes: https://docs.openstack.org/releasenotes/oslo.utils/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/bindep.txt new/oslo.utils-3.36.4/bindep.txt --- old/oslo.utils-3.35.0/bindep.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.36.4/bindep.txt 2018-07-20 03:08:41.000000000 +0200 @@ -0,0 +1,9 @@ +# This is a cross-platform list tracking distribution packages needed by tests; +# see http://docs.openstack.org/infra/bindep/ for additional information. + +locales [platform:debian] +python-dev [platform:dpkg] +python-devel [platform:rpm] +python3-all-dev [platform:ubuntu !platform:ubuntu-precise] +python3-dev [platform:dpkg] +python3-devel [platform:fedora] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/doc/requirements.txt new/oslo.utils-3.36.4/doc/requirements.txt --- old/oslo.utils-3.35.0/doc/requirements.txt 2018-01-15 22:05:53.000000000 +0100 +++ new/oslo.utils-3.36.4/doc/requirements.txt 2018-07-20 03:08:41.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. # this is required for the docs build jobs -sphinx>=1.6.2 # BSD -openstackdocstheme>=1.17.0 # Apache-2.0 +sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD +openstackdocstheme>=1.18.1 # 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.35.0/doc/source/index.rst new/oslo.utils-3.36.4/doc/source/index.rst --- old/oslo.utils-3.35.0/doc/source/index.rst 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/doc/source/index.rst 2018-07-20 03:08:41.000000000 +0200 @@ -2,7 +2,7 @@ Welcome to oslo.utils's documentation! ====================================== -The `oslo`_ utils library provides support for common utility type functions, +The `Oslo`_ utils library provides support for common utility type functions, such as encoding, exception handling, string manipulation, and time handling. .. toctree:: @@ -19,4 +19,4 @@ * :ref:`modindex` * :ref:`search` -.. _oslo: https://wiki.openstack.org/wiki/Oslo +.. _Oslo: https://wiki.openstack.org/wiki/Oslo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/doc/source/user/index.rst new/oslo.utils-3.36.4/doc/source/user/index.rst --- old/oslo.utils-3.35.0/doc/source/user/index.rst 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/doc/source/user/index.rst 2018-07-20 03:08:41.000000000 +0200 @@ -1,6 +1,6 @@ -================== -Using oslo.service -================== +================ +Using oslo.utils +================ .. toctree:: :maxdepth: 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/lower-constraints.txt new/oslo.utils-3.36.4/lower-constraints.txt --- old/oslo.utils-3.35.0/lower-constraints.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.36.4/lower-constraints.txt 2018-07-20 03:08:41.000000000 +0200 @@ -0,0 +1,45 @@ +appdirs==1.3.0 +Babel==2.3.4 +bandit==1.4.0 +coverage==4.0 +ddt==1.0.1 +debtcollector==1.2.0 +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 +oslo.config==5.2.0 +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 +pytz==2013.6 +PyYAML==3.12 +requests==2.14.2 +requestsexceptions==1.2.0 +rfc3986==0.3.1 +six==1.10.0 +smmap==0.9.0 +stestr==2.0.0 +stevedore==1.20.0 +testscenarios==0.4 +testtools==2.2.0 +traceback2==1.4.0 +unittest2==1.1.0 +wrapt==1.7.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/PKG-INFO new/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO --- old/oslo.utils-3.35.0/oslo.utils.egg-info/PKG-INFO 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO 2018-07-20 03:11:33.000000000 +0200 @@ -1,18 +1,17 @@ Metadata-Version: 1.1 Name: oslo.utils -Version: 3.35.0 +Version: 3.36.4 Summary: Oslo Utility library Home-page: https://docs.openstack.org/oslo.utils/latest/ Author: OpenStack Author-email: openstack-...@lists.openstack.org License: UNKNOWN -Description-Content-Type: UNKNOWN Description: ======================== Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/oslo.utils.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/oslo.utils.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -21,11 +20,11 @@ ========== .. image:: https://img.shields.io/pypi/v/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Latest Version .. image:: https://img.shields.io/pypi/dm/oslo.utils.svg - :target: https://pypi.python.org/pypi/oslo.utils/ + :target: https://pypi.org/project/oslo.utils/ :alt: Downloads The oslo.utils library provides support for common utility type functions, @@ -35,6 +34,7 @@ * Documentation: https://docs.openstack.org/oslo.utils/latest/ * Source: https://git.openstack.org/cgit/openstack/oslo.utils * Bugs: https://bugs.launchpad.net/oslo.utils + * Release notes: https://docs.openstack.org/releasenotes/oslo.utils/ Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/SOURCES.txt new/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt --- old/oslo.utils-3.35.0/oslo.utils.egg-info/SOURCES.txt 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt 2018-07-20 03:11:33.000000000 +0200 @@ -1,6 +1,7 @@ .coveragerc .mailmap -.testr.conf +.stestr.conf +.zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog @@ -8,6 +9,8 @@ LICENSE README.rst babel.cfg +bindep.txt +lower-constraints.txt requirements.txt setup.cfg setup.py @@ -98,6 +101,7 @@ releasenotes/source/newton.rst releasenotes/source/ocata.rst releasenotes/source/pike.rst +releasenotes/source/queens.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.35.0/oslo.utils.egg-info/pbr.json new/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json --- old/oslo.utils-3.35.0/oslo.utils.egg-info/pbr.json 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json 2018-07-20 03:11:33.000000000 +0200 @@ -1 +1 @@ -{"git_version": "a449545", "is_release": true} \ No newline at end of file +{"git_version": "7f83970", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo.utils.egg-info/requires.txt new/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt --- old/oslo.utils-3.35.0/oslo.utils.egg-info/requires.txt 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt 2018-07-20 03:11:33.000000000 +0200 @@ -1,6 +1,5 @@ pbr!=2.1.0,>=2.0.0 six>=1.10.0 -funcsigs>=1.0.0 iso8601>=0.1.11 oslo.i18n>=3.15.3 monotonic>=0.6 @@ -9,3 +8,6 @@ netifaces>=0.10.4 debtcollector>=1.2.0 pyparsing>=2.1.0 + +[:(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.35.0/oslo_utils/eventletutils.py new/oslo.utils-3.36.4/oslo_utils/eventletutils.py --- old/oslo.utils-3.35.0/oslo_utils/eventletutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/eventletutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -159,6 +159,9 @@ isSet = is_set def set(self): + if self._set: + self._event.reset() + self._set = True self._event.send(True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po new/oslo.utils-3.36.4/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po --- old/oslo.utils-3.35.0/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/locale/en_GB/LC_MESSAGES/oslo_utils.po 2018-07-20 03:08:41.000000000 +0200 @@ -7,20 +7,21 @@ # OpenStack Infra <zan...@openstack.org>, 2015. #zanata # Andi Chandler <a...@gowling.com>, 2016. #zanata # Andreas Jaeger <jaegera...@gmail.com>, 2016. #zanata +# Andi Chandler <a...@gowling.com>, 2018. #zanata msgid "" msgstr "" -"Project-Id-Version: oslo.utils 3.12.1.dev3\n" +"Project-Id-Version: oslo.utils VERSION\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" -"POT-Creation-Date: 2016-06-10 18:11+0000\n" +"POT-Creation-Date: 2018-02-09 13:01+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-06-09 11:15+0000\n" +"PO-Revision-Date: 2018-02-06 11:26+0000\n" "Last-Translator: Andi Chandler <a...@gowling.com>\n" -"Language: en-GB\n" +"Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.0\n" -"X-Generator: Zanata 3.7.3\n" +"X-Generator: Zanata 4.3.3\n" "Language-Team: English (United Kingdom)\n" #, python-format @@ -32,6 +33,18 @@ msgstr "%(name)s has %(length)s characters, more than %(max_length)s." #, python-format +msgid "%(value_name)s must be <= %(max_value)d" +msgstr "%(value_name)s must be <= %(max_value)d" + +#, python-format +msgid "%(value_name)s must be >= %(min_value)d" +msgstr "%(value_name)s must be >= %(min_value)d" + +#, python-format +msgid "%(value_name)s must be an integer" +msgstr "%(value_name)s must be an integer" + +#, python-format msgid "%s is not a string or unicode" msgstr "%s is not a string or unicode" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/secretutils.py new/oslo.utils-3.36.4/oslo_utils/secretutils.py --- old/oslo.utils-3.35.0/oslo_utils/secretutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/secretutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -20,28 +20,26 @@ import hmac -import six +def _constant_time_compare(first, second): + """Return True if both string or binary inputs are equal, otherwise False. + + This function should take a constant amount of time regardless of + how many characters in the strings match. This function uses an + approach designed to prevent timing analysis by avoiding + content-based short circuiting behaviour, making it appropriate + for cryptography. + """ + first = str(first) + second = str(second) + if len(first) != len(second): + return False + result = 0 + for x, y in zip(first, second): + result |= ord(x) ^ ord(y) + return result == 0 try: constant_time_compare = hmac.compare_digest except AttributeError: - def constant_time_compare(first, second): - """Returns True if both string inputs are equal, otherwise False. - - This function should take a constant amount of time regardless of - how many characters in the strings match. This function uses an - approach designed to prevent timing analysis by avoiding - content-based short circuiting behaviour, making it appropriate - for cryptography. - """ - if isinstance(first, six.string_types): - first = first.encode('utf-8') - if isinstance(second, six.string_types): - second = second.encode('utf-8') - if len(first) != len(second): - return False - result = 0 - for x, y in zip(first, second): - result |= ord(x) ^ ord(y) - return result == 0 + constant_time_compare = _constant_time_compare diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/specs_matcher.py new/oslo.utils-3.36.4/oslo_utils/specs_matcher.py --- old/oslo.utils-3.35.0/oslo_utils/specs_matcher.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/specs_matcher.py 2018-07-20 03:08:41.000000000 +0200 @@ -17,9 +17,6 @@ import operator import pyparsing -from pyparsing import Literal -from pyparsing import OneOrMore -from pyparsing import Regex def _all_in(x, *y): @@ -36,18 +33,21 @@ # equal, see here for the original @ https://review.openstack.org/#/c/8089/ '=': lambda x, y: float(x) >= float(y), # More sane ops/methods + # Numerical methods '!=': lambda x, y: float(x) != float(y), '<=': lambda x, y: float(x) <= float(y), '<': lambda x, y: float(x) < float(y), '==': lambda x, y: float(x) == float(y), '>=': lambda x, y: float(x) >= float(y), '>': lambda x, y: float(x) > float(y), + # String methods 's!=': operator.ne, 's<': operator.lt, 's<=': operator.le, 's==': operator.eq, 's>': operator.gt, 's>=': operator.ge, + # Other '<all-in>': _all_in, '<in>': lambda x, y: y in x, '<or>': lambda x, *y: any(x == a for a in y), @@ -55,32 +55,71 @@ def make_grammar(): - """Creates the grammar to be used by a spec matcher.""" + """Creates the grammar to be used by a spec matcher. + +The grammar created supports the following operations. + +Numerical values: + * ``= :`` equal to or greater than. This is equivalent to ``>=`` and is + supported for `legacy reasons + <http://docs.openstack.org/developer/nova/filter_scheduler.html#ComputeCapabilitiesFilter>`_ + * ``!= :`` Float/integer value not equal + * ``<= :`` Float/integer value less than or equal + * ``< :`` Float/integer value less than + * ``== :`` Float/integer value equal + * ``>= :`` Float/integer value greater than or equal + * ``> :`` Float/integer value greater + +String operations: + * ``s!= :`` Not equal + * ``s< :`` Less than + * ``s<= :`` Less than or equal + * ``s== :`` Equal + * ``s> :`` Greater than + * ``s>= :`` Greater than or equal + +Other operations: + * ``<all-in> :`` All items 'in' value + * ``<in> :`` Item 'in' value, like a substring in a string. + * ``<or> :`` Logical 'or' + +If no operator is specified the default is ``s==`` (string equality comparison) + +Example operations: + * ``">= 60"`` Is the numerical value greater than or equal to 60 + * ``"<or> spam <or> eggs"`` Does the value contain ``spam`` or ``eggs`` + * ``"s== 2.1.0"`` Is the string value equal to ``2.1.0`` + * ``"<in> gcc"`` Is the string ``gcc`` contained in the value string + * ``"<all-in> aes mmx"`` Are both ``aes`` and ``mmx`` in the value + +:returns: A pyparsing.MatchFirst object. See + https://pythonhosted.org/pyparsing/ for details on pyparsing. + """ # This is apparently how pyparsing recommends to be used, # as http://pyparsing.wikispaces.com/share/view/644825 states that # it is not thread-safe to use a parser across threads. unary_ops = ( # Order matters here (so that '=' doesn't match before '==') - Literal("==") | Literal("=") | - Literal("!=") | Literal("<in>") | - Literal(">=") | Literal("<=") | - Literal(">") | Literal("<") | - Literal("s==") | Literal("s!=") | + pyparsing.Literal("==") | pyparsing.Literal("=") | + pyparsing.Literal("!=") | pyparsing.Literal("<in>") | + pyparsing.Literal(">=") | pyparsing.Literal("<=") | + pyparsing.Literal(">") | pyparsing.Literal("<") | + pyparsing.Literal("s==") | pyparsing.Literal("s!=") | # Order matters here (so that '<' doesn't match before '<=') - Literal("s<=") | Literal("s<") | + pyparsing.Literal("s<=") | pyparsing.Literal("s<") | # Order matters here (so that '>' doesn't match before '>=') - Literal("s>=") | Literal("s>")) + pyparsing.Literal("s>=") | pyparsing.Literal("s>")) - all_in_nary_op = Literal("<all-in>") - or_ = Literal("<or>") + all_in_nary_op = pyparsing.Literal("<all-in>") + or_ = pyparsing.Literal("<or>") # An atom is anything not an keyword followed by anything but whitespace - atom = ~(unary_ops | all_in_nary_op | or_) + Regex(r"\S+") + atom = ~(unary_ops | all_in_nary_op | or_) + pyparsing.Regex(r"\S+") unary = unary_ops + atom - nary = all_in_nary_op + OneOrMore(atom) - disjunction = OneOrMore(or_ + atom) + nary = all_in_nary_op + pyparsing.OneOrMore(atom) + disjunction = pyparsing.OneOrMore(or_ + atom) # Even-numbered tokens will be '<or>', so we drop them disjunction.setParseAction(lambda _s, _l, t: ["<or>"] + t[1::2]) @@ -90,14 +129,31 @@ def match(cmp_value, spec): - """Match a given value to a given spec DSL.""" + """Match a given value to a given spec DSL. + + This uses the grammar defined by make_grammar() + + :param cmp_value: Value to be checked for match. + :param spec: The comparison specification string, for example ``">= 70"`` + or ``"s== string_value"``. See ``make_grammar()`` for examples + of a specification string. + :returns: True if cmp_value is a match for spec. False otherwise. + """ expr = make_grammar() try: + # As of 2018-01-29 documentation on parseString() + # https://pythonhosted.org/pyparsing/pyparsing.ParserElement-class.html#parseString + # + # parseString() will take our specification string, for example "< 6" + # and convert it into a list of ['<', "6"] tree = expr.parseString(spec) except pyparsing.ParseException: + # If an exception then we will just check if the value matches the spec tree = [spec] if len(tree) == 1: return tree[0] == cmp_value - op = op_methods[tree[0]] - return op(cmp_value, *tree[1:]) + # tree[0] will contain a string representation of a comparison operation + # such as '>=', we then convert that string to a comparison function + compare_func = op_methods[tree[0]] + return compare_func(cmp_value, *tree[1:]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/strutils.py new/oslo.utils-3.36.4/oslo_utils/strutils.py --- old/oslo.utils-3.35.0/oslo_utils/strutils.py 2018-01-15 22:05:53.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/strutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -58,7 +58,7 @@ _SANITIZE_KEYS = ['adminPass', 'admin_pass', 'password', 'admin_password', 'auth_token', 'new_pass', 'auth_password', 'secret_uuid', 'secret', 'sys_pswd', 'token', 'configdrive', - 'CHAPPASSWORD', 'encrypted_key'] + 'CHAPPASSWORD', 'encrypted_key', 'private_key'] # NOTE(ldbragst): Let's build a list of regex objects using the list of # _SANITIZE_KEYS we already have. This way, we only have to add the new key @@ -403,15 +403,21 @@ continue # NOTE(jlvillal): Check to see if anything in the dictionary 'key' # contains any key specified in _SANITIZE_KEYS. - for sani_key in _SANITIZE_KEYS: - if sani_key in k: - out[k] = secret - break - else: + k_matched = False + if isinstance(k, six.string_types): + for sani_key in _SANITIZE_KEYS: + if sani_key in k: + out[k] = secret + k_matched = True + break + if not k_matched: # We did not find a match for the key name in the # _SANITIZE_KEYS, so we fall through to here if isinstance(v, six.string_types): out[k] = mask_password(v, secret=secret) + else: + # Just leave it alone. + out[k] = v return out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_eventletutils.py new/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_eventletutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -123,8 +123,8 @@ eventletutils.warn_eventlet_not_patched, ['blah.blah']) - @mock.patch('oslo_utils.eventletutils._Event.clear') - def test_event_api_compat(self, mock_clear): + @mock.patch('oslo_utils.eventletutils._eventlet') + def test_event_api_compat(self, mock_eventlet): with mock.patch('oslo_utils.eventletutils.is_monkey_patched', return_value=True): e_event = eventletutils.Event() @@ -142,3 +142,11 @@ for method in public_methods: self.assertTrue(hasattr(e_event, method)) + + # Ensure set() allows multiple invocations, same as in + # threading implementation. Must call reset on underlying + # Event before reusing it + e_event.set() + self.assertEqual(0, mock_eventlet.event.Event().reset.call_count) + e_event.set() + self.assertEqual(1, mock_eventlet.event.Event().reset.call_count) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_secretutils.py new/oslo.utils-3.36.4/oslo_utils/tests/test_secretutils.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_secretutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_secretutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -12,6 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. +import hmac + from oslotest import base as test_base import testscenarios @@ -21,15 +23,20 @@ class SecretUtilsTest(testscenarios.TestWithScenarios, test_base.BaseTestCase): + _gen_digest = lambda text: hmac.new(b'foo', text.encode('utf-8')).digest() scenarios = [ - ('binary', {'converter': lambda text: text.encode('utf-8')}), + ('binary', {'converter': _gen_digest}), ('unicode', {'converter': lambda text: text}), ] def test_constant_time_compare(self): # make sure it works as a compare, the "constant time" aspect # isn't appropriate to test in unittests - ctc = secretutils.constant_time_compare + + # Make sure the unittests are applied to our function instead of + # the built-in function, otherwise that is in vain. + ctc = secretutils._constant_time_compare + self.assertTrue(ctc(self.converter(u'abcd'), self.converter(u'abcd'))) self.assertTrue(ctc(self.converter(u''), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_specs_matcher.py new/oslo.utils-3.36.4/oslo_utils/tests/test_specs_matcher.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_specs_matcher.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_specs_matcher.py 2018-07-20 03:08:41.000000000 +0200 @@ -26,6 +26,21 @@ req='1', matches=True) + def test_specs_fails_string_vs_int(self): + # With no operator specified it is a string comparison test, therefore + # '1' does not equal '01' + self._do_specs_matcher_test( + value='01', + req='1', + matches=False) + + def test_specs_match_int_leading_zero(self): + # Show that numerical comparison works with leading zero + self._do_specs_matcher_test( + value='01', + req='== 1', + matches=True) + def test_specs_fails_simple(self): self._do_specs_matcher_test( value='', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_strutils.py new/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_strutils.py 2018-01-15 22:05:53.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -660,6 +660,13 @@ self.assertEqual(expected, strutils.mask_dict_password(payload)) + def test_do_an_int(self): + payload = {} + payload[1] = 2 + expected = payload.copy() + self.assertEqual(expected, + strutils.mask_dict_password(payload)) + def test_mask_values(self): payload = {'somekey': 'test = cmd --password my\xe9\x80\x80pass'} expected = {'somekey': 'test = cmd --password ***'} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_timeutils.py new/oslo.utils-3.36.4/oslo_utils/tests/test_timeutils.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_timeutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_timeutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -87,20 +87,18 @@ t = timeutils.parse_strtime(s) self.assertEqual(orig_t, t) - def _test_is_older_than(self, fn): - strptime = datetime.datetime.strptime - with mock.patch('datetime.datetime') as datetime_mock: - datetime_mock.utcnow.return_value = self.skynet_self_aware_time - datetime_mock.strptime = strptime - expect_true = timeutils.is_older_than(fn(self.one_minute_before), - 59) - self.assertTrue(expect_true) - expect_false = timeutils.is_older_than(fn(self.one_minute_before), - 60) - self.assertFalse(expect_false) - expect_false = timeutils.is_older_than(fn(self.one_minute_before), - 61) - self.assertFalse(expect_false) + @mock.patch('datetime.datetime', wraps=datetime.datetime) + def _test_is_older_than(self, fn, datetime_mock): + datetime_mock.utcnow.return_value = self.skynet_self_aware_time + expect_true = timeutils.is_older_than(fn(self.one_minute_before), + 59) + self.assertTrue(expect_true) + expect_false = timeutils.is_older_than(fn(self.one_minute_before), + 60) + self.assertFalse(expect_false) + expect_false = timeutils.is_older_than(fn(self.one_minute_before), + 61) + self.assertFalse(expect_false) def test_is_older_than_datetime(self): self._test_is_older_than(lambda x: x) @@ -118,20 +116,18 @@ tzinfo=iso8601.iso8601.FixedOffset(1, 0, 'foo')).replace( hour=7)) - def _test_is_newer_than(self, fn): - strptime = datetime.datetime.strptime - with mock.patch('datetime.datetime') as datetime_mock: - datetime_mock.utcnow.return_value = self.skynet_self_aware_time - datetime_mock.strptime = strptime - expect_true = timeutils.is_newer_than(fn(self.one_minute_after), - 59) - self.assertTrue(expect_true) - expect_false = timeutils.is_newer_than(fn(self.one_minute_after), - 60) - self.assertFalse(expect_false) - expect_false = timeutils.is_newer_than(fn(self.one_minute_after), - 61) - self.assertFalse(expect_false) + @mock.patch('datetime.datetime', wraps=datetime.datetime) + def _test_is_newer_than(self, fn, datetime_mock): + datetime_mock.utcnow.return_value = self.skynet_self_aware_time + expect_true = timeutils.is_newer_than(fn(self.one_minute_after), + 59) + self.assertTrue(expect_true) + expect_false = timeutils.is_newer_than(fn(self.one_minute_after), + 60) + self.assertFalse(expect_false) + expect_false = timeutils.is_newer_than(fn(self.one_minute_after), + 61) + self.assertFalse(expect_false) def test_is_newer_than_datetime(self): self._test_is_newer_than(lambda x: x) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/tests/test_uuidutils.py new/oslo.utils-3.36.4/oslo_utils/tests/test_uuidutils.py --- old/oslo.utils-3.35.0/oslo_utils/tests/test_uuidutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/tests/test_uuidutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -33,7 +33,7 @@ uuid_string = uuidutils.generate_uuid(dashed=False) self.assertIsInstance(uuid_string, str) self.assertEqual(len(uuid_string), 32) - self.assertFalse('-' in uuid_string) + self.assertNotIn('-', uuid_string) def test_is_uuid_like(self): self.assertTrue(uuidutils.is_uuid_like(str(uuid.uuid4()))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/oslo_utils/timeutils.py new/oslo.utils-3.36.4/oslo_utils/timeutils.py --- old/oslo.utils-3.35.0/oslo_utils/timeutils.py 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/oslo_utils/timeutils.py 2018-07-20 03:08:41.000000000 +0200 @@ -55,7 +55,8 @@ if not subsecond else _ISO8601_TIME_FORMAT_SUBSECOND) tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC' - st += ('Z' if tz == 'UTC' else tz) + # Need to handle either iso8601 or python UTC format + st += ('Z' if tz in ('UTC', 'UTC+00:00') else tz) return st @@ -256,7 +257,9 @@ minute=now.minute, second=now.second, microsecond=now.microsecond) if now.tzinfo: - d['tzname'] = now.tzinfo.tzname(None) + # Need to handle either iso8601 or python UTC format + tzname = now.tzinfo.tzname(None) + d['tzname'] = 'UTC' if tzname == 'UTC+00:00' else tzname return d @@ -283,6 +286,8 @@ microsecond=tyme['microsecond']) tzname = tyme.get('tzname') if tzname: + # Need to handle either iso8601 or python UTC format + tzname = 'UTC' if tzname == 'UTC+00:00' else tzname tzinfo = pytz.timezone(tzname) dt = tzinfo.localize(dt) return dt @@ -401,7 +406,7 @@ monotonically increasing time providing function (which typically varies depending on operating system and python version). - .. _monotonic: https://pypi.python.org/pypi/monotonic/ + .. _monotonic: https://pypi.org/project/monotonic/ .. versionadded:: 1.4 """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/releasenotes/source/index.rst new/oslo.utils-3.36.4/releasenotes/source/index.rst --- old/oslo.utils-3.35.0/releasenotes/source/index.rst 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/releasenotes/source/index.rst 2018-07-20 03:08:41.000000000 +0200 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + queens pike ocata newton diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.utils-3.36.4/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po --- old/oslo.utils-3.35.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-01-15 22:05:34.000000000 +0100 +++ new/oslo.utils-3.36.4/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-07-20 03:08:41.000000000 +0200 @@ -1,17 +1,18 @@ # Andi Chandler <a...@gowling.com>, 2017. #zanata +# Andi Chandler <a...@gowling.com>, 2018. #zanata msgid "" msgstr "" -"Project-Id-Version: oslo.utils Release Notes 3.29.1.dev5\n" +"Project-Id-Version: oslo.utils Release Notes\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-20 20:51+0000\n" +"POT-Creation-Date: 2018-02-09 13:01+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2017-10-07 09:32+0000\n" +"PO-Revision-Date: 2018-02-06 11:26+0000\n" "Last-Translator: Andi Chandler <a...@gowling.com>\n" "Language-Team: English (United Kingdom)\n" -"Language: en-GB\n" -"X-Generator: Zanata 3.9.6\n" +"Language: en_GB\n" +"X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" msgid "3.13.0" @@ -41,6 +42,9 @@ msgid "Pike Series Release Notes" msgstr "Pike Series Release Notes" +msgid "Queens Series Release Notes" +msgstr "Queens Series Release Notes" + msgid "Unreleased Release Notes" msgstr "Unreleased Release Notes" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/releasenotes/source/queens.rst new/oslo.utils-3.36.4/releasenotes/source/queens.rst --- old/oslo.utils-3.35.0/releasenotes/source/queens.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.36.4/releasenotes/source/queens.rst 2018-07-20 03:08:41.000000000 +0200 @@ -0,0 +1,6 @@ +=================================== + Queens Series Release Notes +=================================== + +.. release-notes:: + :branch: stable/queens diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/setup.cfg new/oslo.utils-3.36.4/setup.cfg --- old/oslo.utils-3.35.0/setup.cfg 2018-01-15 22:08:44.000000000 +0100 +++ new/oslo.utils-3.36.4/setup.cfg 2018-07-20 03:11:33.000000000 +0200 @@ -22,15 +22,6 @@ packages = oslo_utils -[build_sphinx] -all-files = 1 -warning-is-error = 1 -source-dir = doc/source -build-dir = doc/build - -[upload_sphinx] -upload-dir = doc/build/html - [compile_catalog] directory = oslo_utils/locale domain = oslo_utils diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/test-requirements.txt new/oslo.utils-3.36.4/test-requirements.txt --- old/oslo.utils-3.35.0/test-requirements.txt 2018-01-15 22:05:53.000000000 +0100 +++ new/oslo.utils-3.36.4/test-requirements.txt 2018-07-20 03:08:41.000000000 +0200 @@ -5,11 +5,11 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD -testrepository>=0.0.18 # Apache-2.0/BSD testscenarios>=0.4 # Apache-2.0/BSD testtools>=2.2.0 # MIT -oslotest>=1.10.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 ddt>=1.0.1 # MIT +stestr>=2.0.0 # Apache-2.0 # when we can require tox>= 1.4, this can go into tox.ini: # [testenv:cover] @@ -20,7 +20,7 @@ mock>=2.0.0 # BSD # used for oslotest cross-testing scripts -oslo.config>=5.1.0 # Apache-2.0 +oslo.config>=5.2.0 # Apache-2.0 # Bandit security code scanner bandit>=1.1.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.35.0/tox.ini new/oslo.utils-3.36.4/tox.ini --- old/oslo.utils-3.35.0/tox.ini 2018-01-15 22:05:53.000000000 +0100 +++ new/oslo.utils-3.36.4/tox.ini 2018-07-20 03:08:41.000000000 +0200 @@ -8,25 +8,36 @@ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt -commands = python setup.py testr --slowest --testr-args='{posargs}' +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 -commands = sphinx-build -b html doc/source doc/build/html +commands = + rm -fr doc/build + sphinx-build -W -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] @@ -34,14 +45,14 @@ show-source = True exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py -[testenv:pip-missing-reqs] -# do not install test-requirements as that will pollute the virtualenv for -# determining missing packages -# this also means that pip-missing-reqs must be installed separately, outside -# of the requirements.txt files -deps = pip_missing_reqs -commands = pip-missing-reqs -d --ignore-module=oslo_utils* --ignore-module=pkg_resources --ignore-file=oslo_utils/test.py --ignore-file=oslo_utils/tests/* oslo_utils - [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 + +[testenv:lower-constraints] +basepython = python3 +deps = + -c{toxinidir}/lower-constraints.txt + -r{toxinidir}/test-requirements.txt + -r{toxinidir}/requirements.txt