commit python-oslo.utils for openSUSE:Factory
Hello community, here is the log from the commit of package python-oslo.utils for openSUSE:Factory checked in at 2019-05-03 22:42:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old) and /work/SRC/openSUSE:Factory/.python-oslo.utils.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-oslo.utils" Fri May 3 22:42:48 2019 rev:17 rq:692867 version:3.40.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes 2018-09-07 15:39:13.606547546 +0200 +++ /work/SRC/openSUSE:Factory/.python-oslo.utils.new.5148/python-oslo.utils.changes 2019-05-03 22:42:50.211293293 +0200 @@ -1,0 +2,25 @@ +Mon Apr 8 11:23:34 UTC 2019 - cloud-devel@suse.de + +- update to version 3.40.3 + - Update mailinglist from dev to discuss + - Fix docstring formatting nit in uuidsentinel + - Fix race condition in eventletutils Event + - Use template for lower-constraints + - Remove extra copy.deepcopy + - Fix exception raise at rpdb session + - Expose eventlet Event wrapper class + - add lib-forward-testing-python3 test job + - add python 3.7 unit test job + - Remove moxstubout usage + - Avoid calling eventlet.event.Event.reset() + - Avoid double-setting event + - Update reno for stable/rocky + - Support non-dict mappings in mask_dict_password + - Clean up .gitignore references to personal tools + - Update hacking version + - UUID sentinel + - add python 3.6 unit test job + - Don't use monotonic on Python >=3.3 + - import zuul job settings from project-config + +------------------------------------------------------------------- Old: ---- oslo.utils-3.36.4.tar.gz New: ---- oslo.utils-3.40.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.utils.spec ++++++ --- /var/tmp/diff_new_pack.Hz71V6/_old 2019-05-03 22:42:51.515296039 +0200 +++ /var/tmp/diff_new_pack.Hz71V6/_new 2019-05-03 22:42:51.515296039 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-oslo.utils # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,22 +12,23 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: python-oslo.utils -Version: 3.36.4 +Version: 3.40.3 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.36.... +Source0: https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.40.... BuildRequires: openstack-macros BuildRequires: python2-Babel BuildRequires: python2-ddt BuildRequires: python2-debtcollector >= 1.2.0 +BuildRequires: python2-eventlet BuildRequires: python2-fixtures BuildRequires: python2-iso8601 >= 0.1.11 BuildRequires: python2-mock @@ -38,30 +39,27 @@ BuildRequires: python2-oslotest BuildRequires: python2-pbr >= 2.0.0 BuildRequires: python2-pyparsing >= 2.1.0 -BuildRequires: python2-python-subunit BuildRequires: python2-stestr BuildRequires: python2-testscenarios BuildRequires: python2-testtools BuildRequires: python3-Babel BuildRequires: python3-ddt BuildRequires: python3-debtcollector >= 1.2.0 +BuildRequires: python3-eventlet BuildRequires: python3-fixtures BuildRequires: python3-iso8601 >= 0.1.11 BuildRequires: python3-mock -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 >= 2.0.0 BuildRequires: python3-pyparsing >= 2.1.0 -BuildRequires: python3-python-subunit BuildRequires: python3-stestr BuildRequires: python3-testscenarios BuildRequires: python3-testtools 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 @@ -69,6 +67,9 @@ Requires: python-pytz >= 2013.6 Requires: python-six >= 1.10.0 BuildArch: noarch +%ifpython2 +Requires: python-monotonic >= 0.6 +%endif %python_subpackages %description @@ -85,9 +86,8 @@ Documentation for OpenStack utils library. %prep -%autosetup -p1 -n oslo.utils-3.36.4 +%autosetup -p1 -n oslo.utils-3.40.3 -sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg %py_req_cleanup %build @@ -98,7 +98,7 @@ # generate html docs #%{__python2} setup.py build_sphinx -PBR_VERSION=3.36.4 sphinx-build -b html doc/source doc/build/html +PBR_VERSION=3.40.3 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.Hz71V6/_old 2019-05-03 22:42:51.535296081 +0200 +++ /var/tmp/diff_new_pack.Hz71V6/_new 2019-05-03 22:42:51.539296089 +0200 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/openstack/oslo.utils/oslo.utils.spec.j2</param> + <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/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/rocky/requirements.txt</param> + <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/stein/requirements.txt</param> <param name="changelog-email">cloud-devel@suse.de</param> <param name="changelog-provider">gh,openstack,oslo.utils</param> </service> ++++++ oslo.utils-3.36.4.tar.gz -> oslo.utils-3.40.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/.zuul.yaml new/oslo.utils-3.40.3/.zuul.yaml --- old/oslo.utils-3.36.4/.zuul.yaml 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/.zuul.yaml 2019-02-28 19:04:16.000000000 +0100 @@ -1,7 +1,13 @@ - project: - check: - jobs: - - openstack-tox-lower-constraints - gate: - jobs: - - openstack-tox-lower-constraints + templates: + - check-requirements + - lib-forward-testing + - lib-forward-testing-python3 + - openstack-lower-constraints-jobs + - openstack-python-jobs + - openstack-python35-jobs + - openstack-python36-jobs + - openstack-python37-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.36.4/AUTHORS new/oslo.utils-3.40.3/AUTHORS --- old/oslo.utils-3.36.4/AUTHORS 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/AUTHORS 2019-02-28 19:05:42.000000000 +0100 @@ -20,11 +20,13 @@ Ben Nemec <bnemec@us.ibm.com> Bin Zhou <zhou.bin9@zte.com.cn> Brant Knudson <bknudson@us.ibm.com> +BubaVV <vmarkov@mirantis.com> Cedric Brandily <zzelle@gmail.com> Chang Bo Guo <guochbo@cn.ibm.com> ChangBo Guo(gcb) <eric.guo@easystack.cn> Christian Berendt <berendt@b1-systems.de> Chuck Short <chuck.short@canonical.com> +Chuck Short <chucks@redhat.com> Costin Galan <cgalan@cloudbasesolutions.com> Cyril Roelandt <cyril.roelandt@enovance.com> Cyril Roelandt <cyril@redhat.com> @@ -46,6 +48,7 @@ Elena Ezhova <eezhova@mirantis.com> Eoghan Glynn <eglynn@redhat.com> Eric Brown <browne@vmware.com> +Eric Fried <efried@us.ibm.com> Eugene Kirpichov <ekirpichov@gmail.com> Flaper Fesp <flaper87@gmail.com> Flavio Percoco <flaper87@gmail.com> @@ -125,10 +128,10 @@ Yunhong, Jiang <yunhong.jiang@intel.com> Zane Bitter <zbitter@redhat.com> ZhiQiang Fan <aji.zqfan@gmail.com> +ZhijunWei <wzj334965317@outlook.com> ZhongShengping <chdzsp@163.com> Zhongyue Luo <lzyeval@gmail.com> Zhongyue Luo <zhongyue.nah@intel.com> -Zuul <zuul@review.openstack.org> avnish <avnish.pal@nectechnologies.in> bhagyashris <bhagyashri.shewale@nttdata.com> changxun <zhoucx@dtdream.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/ChangeLog new/oslo.utils-3.40.3/ChangeLog --- old/oslo.utils-3.36.4/ChangeLog 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/ChangeLog 2019-02-28 19:05:42.000000000 +0100 @@ -1,6 +1,62 @@ CHANGES ======= +3.40.3 +------ + +* add python 3.7 unit test job +* Update hacking version + +3.40.2 +------ + +* Avoid double-setting event + +3.40.1 +------ + + +3.40.0 +------ + + +3.39.1 +------ + +* Avoid calling eventlet.event.Event.reset() +* Use template for lower-constraints + +3.39.0 +------ + +* Fix race condition in eventletutils Event +* Don't use monotonic on Python >=3.3 +* Update mailinglist from dev to discuss +* Support non-dict mappings in mask\_dict\_password + +3.38.0 +------ + +* Expose eventlet Event wrapper class +* Clean up .gitignore references to personal tools + +3.37.1 +------ + +* Fix exception raise at rpdb session + +3.37.0 +------ + +* Fix docstring formatting nit in uuidsentinel +* UUID sentinel +* Remove moxstubout usage +* add lib-forward-testing-python3 test job +* add python 3.6 unit test job +* import zuul job settings from project-config +* Update reno for stable/rocky +* Remove extra copy.deepcopy + 3.36.4 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/HACKING.rst new/oslo.utils-3.40.3/HACKING.rst --- old/oslo.utils-3.36.4/HACKING.rst 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/HACKING.rst 2019-02-28 19:04:16.000000000 +0100 @@ -1,4 +1,4 @@ oslo.utils Style Commandments -====================================================== +============================= -Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ \ No newline at end of file +Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/PKG-INFO new/oslo.utils-3.40.3/PKG-INFO --- old/oslo.utils-3.36.4/PKG-INFO 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/PKG-INFO 2019-02-28 19:05:42.000000000 +0100 @@ -1,10 +1,10 @@ Metadata-Version: 1.1 Name: oslo.utils -Version: 3.36.4 +Version: 3.40.3 Summary: Oslo Utility library Home-page: https://docs.openstack.org/oslo.utils/latest/ Author: OpenStack -Author-email: openstack-dev@lists.openstack.org +Author-email: openstack-discuss@lists.openstack.org License: UNKNOWN Description: ======================== Team and repository tags diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/lower-constraints.txt new/oslo.utils-3.40.3/lower-constraints.txt --- old/oslo.utils-3.36.4/lower-constraints.txt 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/lower-constraints.txt 2019-02-28 19:04:16.000000000 +0100 @@ -4,6 +4,7 @@ coverage==4.0 ddt==1.0.1 debtcollector==1.2.0 +eventlet==0.18.2 extras==1.0.0 fixtures==3.0.0 flake8==2.5.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO new/oslo.utils-3.40.3/oslo.utils.egg-info/PKG-INFO --- old/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo.utils.egg-info/PKG-INFO 2019-02-28 19:05:42.000000000 +0100 @@ -1,10 +1,10 @@ Metadata-Version: 1.1 Name: oslo.utils -Version: 3.36.4 +Version: 3.40.3 Summary: Oslo Utility library Home-page: https://docs.openstack.org/oslo.utils/latest/ Author: OpenStack -Author-email: openstack-dev@lists.openstack.org +Author-email: openstack-discuss@lists.openstack.org License: UNKNOWN Description: ======================== Team and repository tags diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt new/oslo.utils-3.40.3/oslo.utils.egg-info/SOURCES.txt --- old/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo.utils.egg-info/SOURCES.txt 2019-02-28 19:05:42.000000000 +0100 @@ -102,6 +102,7 @@ releasenotes/source/ocata.rst releasenotes/source/pike.rst releasenotes/source/queens.rst +releasenotes/source/rocky.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.36.4/oslo.utils.egg-info/pbr.json new/oslo.utils-3.40.3/oslo.utils.egg-info/pbr.json --- old/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo.utils.egg-info/pbr.json 2019-02-28 19:05:42.000000000 +0100 @@ -1 +1 @@ -{"git_version": "7f83970", "is_release": true} \ No newline at end of file +{"git_version": "1fd9f5a", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt new/oslo.utils-3.40.3/oslo.utils.egg-info/requires.txt --- old/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo.utils.egg-info/requires.txt 2019-02-28 19:05:42.000000000 +0100 @@ -2,12 +2,14 @@ six>=1.10.0 iso8601>=0.1.11 oslo.i18n>=3.15.3 -monotonic>=0.6 pytz>=2013.6 netaddr>=0.7.18 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.36.4/oslo_utils/encodeutils.py new/oslo.utils-3.40.3/oslo_utils/encodeutils.py --- old/oslo.utils-3.36.4/oslo_utils/encodeutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/encodeutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -42,7 +42,7 @@ return text if not incoming: - incoming = (sys.stdin.encoding or + incoming = (getattr(sys.stdin, 'encoding', None) or sys.getdefaultencoding()) try: @@ -85,7 +85,7 @@ raise TypeError("%s can't be encoded" % type(text)) if not incoming: - incoming = (sys.stdin.encoding or + incoming = (getattr(sys.stdin, 'encoding', None) or sys.getdefaultencoding()) # Avoid case issues in comparisons diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/eventletutils.py new/oslo.utils-3.40.3/oslo_utils/eventletutils.py --- old/oslo.utils-3.36.4/oslo_utils/eventletutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/eventletutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -24,6 +24,8 @@ import warnings from oslo_utils import importutils +from oslo_utils import timeutils + # These may or may not exist; so carefully import them if we can... _eventlet = importutils.try_import('eventlet') @@ -140,18 +142,24 @@ return _patcher.is_monkey_patched(module) -class _Event(object): +class EventletEvent(object): """A class that provides consistent eventlet/threading Event API. This wraps the eventlet.event.Event class to have the same API as the standard threading.Event object. """ def __init__(self, *args, **kwargs): + super(EventletEvent, self).__init__() + self._set = False self.clear() def clear(self): + old_event = getattr(self, "_event", None) + was_set = self._set self._set = False self._event = _eventlet.event.Event() + if old_event is not None and not was_set: + old_event.send(True) def is_set(self): return self._set @@ -159,20 +167,24 @@ isSet = is_set def set(self): - if self._set: - self._event.reset() - - self._set = True - self._event.send(True) + if not self._set: + self._set = True + self._event.send(True) def wait(self, timeout=None): - with _eventlet.timeout.Timeout(timeout, False): - self._event.wait() - return self.is_set() + with timeutils.StopWatch(timeout) as sw: + while True: + event = self._event + with _eventlet.timeout.Timeout(sw.leftover(return_none=True), + False): + event.wait() + if event is not self._event: + continue + return self.is_set() def Event(): if is_monkey_patched("thread"): - return _Event() + return EventletEvent() else: return threading.Event() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/fixture.py new/oslo.utils-3.40.3/oslo_utils/fixture.py --- old/oslo.utils-3.36.4/oslo_utils/fixture.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/fixture.py 2019-02-28 19:04:16.000000000 +0100 @@ -20,9 +20,12 @@ .. versionadded:: 1.3 """ +import threading + import fixtures from oslo_utils import timeutils +from oslo_utils import uuidutils class TimeFixture(fixtures.Fixture): @@ -49,3 +52,41 @@ def advance_time_seconds(self, seconds): """Advance overridden time by seconds.""" timeutils.advance_time_seconds(seconds) + + +class _UUIDSentinels(object): + """Registry of dynamically created, named, random UUID strings. + + An instance of this class will dynamically generate attributes as they are + referenced, associating a random UUID string with each. Thereafter, + referring to the same attribute will give the same UUID for the life of the + instance. Plan accordingly. + + Usage:: + + from oslo_utils.fixture import uuidsentinel as uuids + ... + foo = uuids.foo + do_a_thing(foo) + # Referencing the same sentinel again gives the same value + assert foo == uuids.foo + # But a different one will be different + assert foo != uuids.bar + """ + def __init__(self): + self._sentinels = {} + self._lock = threading.Lock() + + def __getattr__(self, name): + if name.startswith('_'): + raise ValueError('Sentinels must not start with _') + with self._lock: + if name not in self._sentinels: + self._sentinels[name] = uuidutils.generate_uuid() + return self._sentinels[name] + + +# Singleton sentinel instance. Caveat emptor: using this multiple times in the +# same process (including across multiple modules) will result in the same +# values +uuidsentinel = _UUIDSentinels() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/reflection.py new/oslo.utils-3.40.3/oslo_utils/reflection.py --- old/oslo.utils-3.36.4/oslo_utils/reflection.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/reflection.py 2019-02-28 19:04:16.000000000 +0100 @@ -208,8 +208,8 @@ sig = get_signature(function) function_args = list(six.iterkeys(sig.parameters)) for param_name, p in six.iteritems(sig.parameters): - if (p.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD) - or (required_only and p.default is not Parameter.empty)): + if (p.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD) or + (required_only and p.default is not Parameter.empty)): function_args.remove(param_name) return function_args diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/strutils.py new/oslo.utils-3.40.3/oslo_utils/strutils.py --- old/oslo.utils-3.36.4/oslo_utils/strutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/strutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -17,7 +17,7 @@ System-level utilities and helper functions. """ -import copy +import collections import math import re import unicodedata @@ -391,14 +391,12 @@ """ - if not isinstance(dictionary, dict): - raise TypeError("Expected a dictionary, got %s instead." + if not isinstance(dictionary, collections.Mapping): + raise TypeError("Expected a Mapping, got %s instead." % type(dictionary)) - - out = copy.deepcopy(dictionary) - + out = {} for k, v in dictionary.items(): - if isinstance(v, dict): + if isinstance(v, collections.Mapping): out[k] = mask_dict_password(v, secret=secret) continue # NOTE(jlvillal): Check to see if anything in the dictionary 'key' @@ -556,8 +554,8 @@ .. versionadded:: 3.17 """ - word = (pp.QuotedString(quoteChar='"', escChar='\\') - | pp.Word(pp.printables, excludeChars='",')) + word = (pp.QuotedString(quoteChar='"', escChar='\\') | + pp.Word(pp.printables, excludeChars='",')) grammar = pp.stringStart + pp.delimitedList(word) + pp.stringEnd try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_eventletutils.py --- old/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/tests/test_eventletutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -15,6 +15,8 @@ import threading import warnings +import eventlet +from eventlet import greenthread import mock from oslotest import base as test_base import six @@ -128,7 +130,7 @@ with mock.patch('oslo_utils.eventletutils.is_monkey_patched', return_value=True): e_event = eventletutils.Event() - self.assertIsInstance(e_event, eventletutils._Event) + self.assertIsInstance(e_event, eventletutils.EventletEvent) t_event = eventletutils.Event() if six.PY3: @@ -144,9 +146,67 @@ 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 + # threading implementation. e_event.set() - self.assertEqual(0, mock_eventlet.event.Event().reset.call_count) + self.assertTrue(e_event.isSet()) e_event.set() - self.assertEqual(1, mock_eventlet.event.Event().reset.call_count) + self.assertTrue(e_event.isSet()) + + def test_event_no_timeout(self): + event = eventletutils.EventletEvent() + + def thread_a(): + self.assertTrue(event.wait()) + + a = greenthread.spawn(thread_a) + + with eventlet.timeout.Timeout(0.5, False): + a.wait() + self.fail('wait() timed out') + + def test_event_race(self): + event = eventletutils.EventletEvent() + + def thread_a(): + self.assertTrue(event.wait(2)) + + a = greenthread.spawn(thread_a) + + def thread_b(): + eventlet.sleep(0.1) + event.clear() + event.set() + a.wait() + + b = greenthread.spawn(thread_b) + with eventlet.timeout.Timeout(0.5): + b.wait() + + def test_event_clear_timeout(self): + event = eventletutils.EventletEvent() + + def thread_a(): + self.assertFalse(event.wait(0.5)) + + a = greenthread.spawn(thread_a) + + def thread_b(): + eventlet.sleep(0.1) + event.clear() + eventlet.sleep(0.1) + event.clear() + a.wait() + + b = greenthread.spawn(thread_b) + with eventlet.timeout.Timeout(0.7): + b.wait() + + @mock.patch('oslo_utils.eventletutils._eventlet.event.Event') + def test_event_clear_already_sent(self, mock_event): + old_event = mock.Mock() + new_event = mock.Mock() + mock_event.side_effect = [old_event, new_event] + event = eventletutils.EventletEvent() + event.set() + event.clear() + self.assertEqual(1, old_event.send.call_count) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_excutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_excutils.py --- old/oslo.utils-3.36.4/oslo_utils/tests/test_excutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/tests/test_excutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -13,8 +13,8 @@ # under the License. import logging -import time +import fixtures import mock from oslotest import base as test_base from oslotest import moxstubout @@ -170,7 +170,6 @@ super(ForeverRetryUncaughtExceptionsTest, self).setUp() moxfixture = self.useFixture(moxstubout.MoxStubout()) self.mox = moxfixture.mox - self.stubs = moxfixture.stubs @excutils.forever_retry_uncaught_exceptions def exception_generator(self): @@ -186,7 +185,10 @@ pass def exc_retrier_common_start(self): - self.stubs.Set(time, 'sleep', self.my_time_sleep) + 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) @@ -211,7 +213,6 @@ self.exception_to_raise().AndReturn(None) self.mox.ReplayAll() self.exception_generator() - self.addCleanup(self.stubs.UnsetAll) def test_exc_retrier_1exc_gives_1log(self): self.exc_retrier_common_start() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_fixture.py new/oslo.utils-3.40.3/oslo_utils/tests/test_fixture.py --- old/oslo.utils-3.36.4/oslo_utils/tests/test_fixture.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/tests/test_fixture.py 2019-02-28 19:04:16.000000000 +0100 @@ -17,9 +17,12 @@ import datetime from oslotest import base as test_base +import six from oslo_utils import fixture +from oslo_utils.fixture import uuidsentinel as uuids from oslo_utils import timeutils +from oslo_utils import uuidutils class TimeFixtureTest(test_base.BaseTestCase): @@ -61,3 +64,21 @@ time_fixture.advance_time_seconds(2) expected_time = datetime.datetime(2015, 1, 2, 3, 4, 8, 7) self.assertEqual(expected_time, timeutils.utcnow()) + + +class UUIDSentinelsTest(test_base.BaseTestCase): + + def test_different_sentinel(self): + uuid1 = uuids.foobar + uuid2 = uuids.barfoo + self.assertNotEqual(uuid1, uuid2) + + def test_returns_uuid(self): + self.assertTrue(uuidutils.is_uuid_like(uuids.foo)) + + def test_returns_string(self): + self.assertIsInstance(uuids.foo, str) + + def test_with_underline_prefix(self): + ex = self.assertRaises(ValueError, getattr, uuids, '_foo') + self.assertIn("Sentinels must not start with _", six.text_type(ex)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_strutils.py --- old/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/tests/test_strutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -15,6 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. +import collections import copy import math @@ -613,6 +614,31 @@ self.assertEqual(expected, strutils.mask_password(payload)) +class TestMapping(collections.Mapping): + """Test class for non-dict mappings""" + def __init__(self): + super(TestMapping, self).__init__() + self.data = {'password': 'shhh', + 'foo': 'bar', + } + + def __getitem__(self, key): + return self.data[key] + + def __iter__(self): + return self.data.__iter__() + + def __len__(self): + return len(self.data) + + +class NestedMapping(TestMapping): + """Test class that contains an instance of TestMapping""" + def __init__(self): + super(NestedMapping, self).__init__() + self.data = {'nested': TestMapping()} + + class MaskDictionaryPasswordTestCase(test_base.BaseTestCase): def test_dictionary(self): @@ -696,6 +722,21 @@ strutils.mask_dict_password(payload) self.assertEqual(pristine, payload) + def test_non_dict(self): + expected = {'password': '***', + 'foo': 'bar', + } + payload = TestMapping() + self.assertEqual(expected, strutils.mask_dict_password(payload)) + + def test_nested_non_dict(self): + expected = {'nested': {'password': '***', + 'foo': 'bar', + } + } + payload = NestedMapping() + self.assertEqual(expected, strutils.mask_dict_password(payload)) + class IsIntLikeTestCase(test_base.BaseTestCase): def test_is_int_like_true(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/timeutils.py new/oslo.utils-3.40.3/oslo_utils/timeutils.py --- old/oslo.utils-3.36.4/oslo_utils/timeutils.py 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/oslo_utils/timeutils.py 2019-02-28 19:04:16.000000000 +0100 @@ -24,12 +24,16 @@ from debtcollector import removals import iso8601 -from monotonic import monotonic as now # noqa import pytz import six from oslo_utils import reflection +if hasattr(time, 'monotonic'): + now = time.monotonic +else: + from monotonic import monotonic as now # noqa + # ISO 8601 extended time format with microseconds _ISO8601_TIME_FORMAT_SUBSECOND = '%Y-%m-%dT%H:%M:%S.%f' _ISO8601_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/releasenotes/source/index.rst new/oslo.utils-3.40.3/releasenotes/source/index.rst --- old/oslo.utils-3.36.4/releasenotes/source/index.rst 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/releasenotes/source/index.rst 2019-02-28 19:04:16.000000000 +0100 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + rocky queens pike ocata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/releasenotes/source/rocky.rst new/oslo.utils-3.40.3/releasenotes/source/rocky.rst --- old/oslo.utils-3.36.4/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.utils-3.40.3/releasenotes/source/rocky.rst 2019-02-28 19:04:16.000000000 +0100 @@ -0,0 +1,6 @@ +=================================== + Rocky Series Release Notes +=================================== + +.. release-notes:: + :branch: stable/rocky diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/requirements.txt new/oslo.utils-3.40.3/requirements.txt --- old/oslo.utils-3.36.4/requirements.txt 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/requirements.txt 2019-02-28 19:04:16.000000000 +0100 @@ -12,7 +12,7 @@ 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 # 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.36.4/setup.cfg new/oslo.utils-3.40.3/setup.cfg --- old/oslo.utils-3.36.4/setup.cfg 2018-07-20 03:11:33.000000000 +0200 +++ new/oslo.utils-3.40.3/setup.cfg 2019-02-28 19:05:42.000000000 +0100 @@ -4,7 +4,7 @@ description-file = README.rst author = OpenStack -author-email = openstack-dev@lists.openstack.org +author-email = openstack-discuss@lists.openstack.org home-page = https://docs.openstack.org/oslo.utils/latest/ classifier = Environment :: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/test-requirements.txt new/oslo.utils-3.40.3/test-requirements.txt --- old/oslo.utils-3.36.4/test-requirements.txt 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/test-requirements.txt 2019-02-28 19:04:16.000000000 +0100 @@ -2,8 +2,9 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 +hacking>=1.1.0,<1.2.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 testscenarios>=0.4 # Apache-2.0/BSD testtools>=2.2.0 # MIT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/tox.ini new/oslo.utils-3.40.3/tox.ini --- old/oslo.utils-3.36.4/tox.ini 2018-07-20 03:08:41.000000000 +0200 +++ new/oslo.utils-3.40.3/tox.ini 2019-02-28 19:04:16.000000000 +0100 @@ -41,7 +41,8 @@ commands = bandit -r oslo_utils -x tests -n5 [flake8] -ignore = E123,H405 +# E731 skipped as assign a lambda expression +ignore = E123,E731,H405 show-source = True exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py
participants (1)
-
root