Hello community, here is the log from the commit of package python-oslo.serialization for openSUSE:Factory checked in at 2015-10-30 13:42:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.serialization (Old) and /work/SRC/openSUSE:Factory/.python-oslo.serialization.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.serialization" Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.serialization/python-oslo.serialization.changes 2015-08-27 08:54:46.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-oslo.serialization.new/python-oslo.serialization.changes 2015-10-30 13:42:21.000000000 +0100 @@ -1,0 +2,18 @@ +Wed Sep 9 06:54:35 UTC 2015 - tbecht...@suse.com + +- update to 1.9.0: + * Updated from global requirements + * Drop stale test - test_jsonutils + * Stop using deprecated oslo_utils.timeutils.strtime + * Add tox target to find missing requirements + * Remove oslo namespace package + * Do not use oslo namespace for oslo.i18n lib + * Switch badges from 'pypip.in' to 'shields.io' +- Adjust Requires according to requirements.txt + +------------------------------------------------------------------- +Mon Aug 10 11:45:21 UTC 2015 - seife+...@b1-systems.com + +- fix spelling of python-Sphinx BuildRequires + +------------------------------------------------------------------- Old: ---- oslo.serialization-1.6.0.tar.gz New: ---- oslo.serialization-1.9.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.serialization.spec ++++++ --- /var/tmp/diff_new_pack.oAZB7a/_old 2015-10-30 13:42:22.000000000 +0100 +++ /var/tmp/diff_new_pack.oAZB7a/_new 2015-10-30 13:42:22.000000000 +0100 @@ -17,7 +17,7 @@ Name: python-oslo.serialization -Version: 1.6.0 +Version: 1.9.0 Release: 0 Summary: OpenStack serialization API License: Apache-2.0 @@ -28,18 +28,18 @@ BuildRequires: python-devel BuildRequires: python-pbr # Test requirements +BuildRequires: python-Sphinx BuildRequires: python-coverage BuildRequires: python-mock BuildRequires: python-netaddr BuildRequires: python-oslo.i18n BuildRequires: python-oslotest BuildRequires: python-simplejson -BuildRequires: python-sphinx BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: python-Babel >= 1.3 Requires: python-iso8601 >= 0.1.9 Requires: python-msgpack-python >= 0.4.0 -Requires: python-oslo.utils >= 1.4.0 +Requires: python-oslo.utils >= 2.0.0 Requires: python-pytz >= 2013.6 Requires: python-six >= 1.9.0 BuildArch: noarch ++++++ oslo.serialization-1.6.0.tar.gz -> oslo.serialization-1.9.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/AUTHORS new/oslo.serialization-1.9.0/AUTHORS --- old/oslo.serialization-1.6.0/AUTHORS 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/AUTHORS 2015-09-08 18:00:55.000000000 +0200 @@ -2,6 +2,7 @@ Andreas Jaeger <a...@suse.de> Ann Kamyshnikova <akamyshnik...@mirantis.com> Ben Nemec <bne...@redhat.com> +Brant Knudson <bknud...@us.ibm.com> Chang Bo Guo <guoc...@cn.ibm.com> Christian Berendt <bere...@b1-systems.de> Chuck Short <chuck.sh...@canonical.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/ChangeLog new/oslo.serialization-1.9.0/ChangeLog --- old/oslo.serialization-1.6.0/ChangeLog 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/ChangeLog 2015-09-08 18:00:55.000000000 +0200 @@ -1,6 +1,36 @@ CHANGES ======= +1.9.0 +----- + +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements + +1.8.0 +----- + +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Drop stale test - test_jsonutils + +1.7.0 +----- + +* Stop using deprecated oslo_utils.timeutils.strtime +* Add tox target to find missing requirements +* Remove oslo namespace package +* Do not use oslo namespace for oslo.i18n lib +* Updated from global requirements +* Updated from global requirements +* Switch badges from 'pypip.in' to 'shields.io' + 1.6.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/PKG-INFO new/oslo.serialization-1.9.0/PKG-INFO --- old/oslo.serialization-1.6.0/PKG-INFO 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/PKG-INFO 2015-09-08 18:00:56.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: oslo.serialization -Version: 1.6.0 +Version: 1.9.0 Summary: Oslo Serialization library Home-page: http://launchpad.net/oslo Author: OpenStack @@ -10,11 +10,11 @@ oslo.serialization ==================== - .. image:: https://pypip.in/version/oslo.serialization/badge.svg + .. image:: https://img.shields.io/pypi/v/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Latest Version - .. image:: https://pypip.in/download/oslo.serialization/badge.svg?period=month + .. image:: https://img.shields.io/pypi/dm/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Downloads diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/README.rst new/oslo.serialization-1.9.0/README.rst --- old/oslo.serialization-1.6.0/README.rst 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/README.rst 2015-09-08 18:00:19.000000000 +0200 @@ -2,11 +2,11 @@ oslo.serialization ==================== -.. image:: https://pypip.in/version/oslo.serialization/badge.svg +.. image:: https://img.shields.io/pypi/v/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Latest Version -.. image:: https://pypip.in/download/oslo.serialization/badge.svg?period=month +.. image:: https://img.shields.io/pypi/dm/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Downloads diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo/__init__.py new/oslo.serialization-1.9.0/oslo/__init__.py --- old/oslo.serialization-1.6.0/oslo/__init__.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo/__init__.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -__import__('pkg_resources').declare_namespace(__name__) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo/serialization/__init__.py new/oslo.serialization-1.9.0/oslo/serialization/__init__.py --- old/oslo.serialization-1.6.0/oslo/serialization/__init__.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo/serialization/__init__.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,26 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import warnings - - -def deprecated(): - new_name = __name__.replace('.', '_') - warnings.warn( - ('The oslo namespace package is deprecated. Please use %s instead.' % - new_name), - DeprecationWarning, - stacklevel=3, - ) - - -deprecated() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo/serialization/jsonutils.py new/oslo.serialization-1.9.0/oslo/serialization/jsonutils.py --- old/oslo.serialization-1.6.0/oslo/serialization/jsonutils.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo/serialization/jsonutils.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslo_serialization.jsonutils import * # noqa diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/PKG-INFO new/oslo.serialization-1.9.0/oslo.serialization.egg-info/PKG-INFO --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/PKG-INFO 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/PKG-INFO 2015-09-08 18:00:55.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: oslo.serialization -Version: 1.6.0 +Version: 1.9.0 Summary: Oslo Serialization library Home-page: http://launchpad.net/oslo Author: OpenStack @@ -10,11 +10,11 @@ oslo.serialization ==================== - .. image:: https://pypip.in/version/oslo.serialization/badge.svg + .. image:: https://img.shields.io/pypi/v/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Latest Version - .. image:: https://pypip.in/download/oslo.serialization/badge.svg?period=month + .. image:: https://img.shields.io/pypi/dm/oslo.serialization.svg :target: https://pypi.python.org/pypi/oslo.serialization/ :alt: Downloads diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/SOURCES.txt new/oslo.serialization-1.9.0/oslo.serialization.egg-info/SOURCES.txt --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/SOURCES.txt 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/SOURCES.txt 2015-09-08 18:00:56.000000000 +0200 @@ -20,23 +20,15 @@ doc/source/history.rst doc/source/index.rst doc/source/installation.rst -oslo/__init__.py oslo.serialization.egg-info/PKG-INFO oslo.serialization.egg-info/SOURCES.txt oslo.serialization.egg-info/dependency_links.txt -oslo.serialization.egg-info/namespace_packages.txt oslo.serialization.egg-info/not-zip-safe oslo.serialization.egg-info/pbr.json oslo.serialization.egg-info/requires.txt oslo.serialization.egg-info/top_level.txt -oslo/serialization/__init__.py -oslo/serialization/jsonutils.py oslo_serialization/__init__.py oslo_serialization/jsonutils.py oslo_serialization/msgpackutils.py oslo_serialization/tests/__init__.py -oslo_serialization/tests/test_jsonutils.py -tests/__init__.py -tests/test_jsonutils.py -tests/test_msgpackutils.py -tests/test_warning.py \ No newline at end of file +oslo_serialization/tests/test_jsonutils.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/namespace_packages.txt new/oslo.serialization-1.9.0/oslo.serialization.egg-info/namespace_packages.txt --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/namespace_packages.txt 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/namespace_packages.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -oslo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/pbr.json new/oslo.serialization-1.9.0/oslo.serialization.egg-info/pbr.json --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/pbr.json 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/pbr.json 2015-09-08 18:00:55.000000000 +0200 @@ -1 +1 @@ -{"is_release": true, "git_version": "15c82cc"} \ No newline at end of file +{"is_release": true, "git_version": "03f3431"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/requires.txt new/oslo.serialization-1.9.0/oslo.serialization.egg-info/requires.txt --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/requires.txt 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/requires.txt 2015-09-08 18:00:55.000000000 +0200 @@ -1,7 +1,7 @@ -pbr>=0.11,<2.0 +pbr<2.0,>=1.6 Babel>=1.3 six>=1.9.0 msgpack-python>=0.4.0 iso8601>=0.1.9 -oslo.utils>=1.4.0 # Apache-2.0 +oslo.utils>=2.0.0 pytz>=2013.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo.serialization.egg-info/top_level.txt new/oslo.serialization-1.9.0/oslo.serialization.egg-info/top_level.txt --- old/oslo.serialization-1.6.0/oslo.serialization.egg-info/top_level.txt 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo.serialization.egg-info/top_level.txt 2015-09-08 18:00:55.000000000 +0200 @@ -1,2 +1 @@ -oslo oslo_serialization diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/oslo_serialization/jsonutils.py new/oslo.serialization-1.9.0/oslo_serialization/jsonutils.py --- old/oslo.serialization-1.6.0/oslo_serialization/jsonutils.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/oslo_serialization/jsonutils.py 2015-09-08 18:00:19.000000000 +0200 @@ -111,7 +111,7 @@ if isinstance(value, datetime.datetime): if convert_datetime: - return timeutils.strtime(value) + return value.strftime(timeutils.PERFECT_TIME_FORMAT) else: return value diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/requirements.txt new/oslo.serialization-1.9.0/requirements.txt --- old/oslo.serialization-1.6.0/requirements.txt 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/requirements.txt 2015-09-08 18:00:19.000000000 +0200 @@ -7,12 +7,12 @@ # adding a new feature to oslo.serialization means adding a new dependency, # that is a likely indicator that the feature belongs somewhere else. -pbr>=0.11,<2.0 +pbr<2.0,>=1.6 Babel>=1.3 six>=1.9.0 msgpack-python>=0.4.0 # Only for timeutils in openstack.common - once we're using the # library version this can be removed. iso8601>=0.1.9 -oslo.utils>=1.4.0 # Apache-2.0 +oslo.utils>=2.0.0 # Apache-2.0 pytz>=2013.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/setup.cfg new/oslo.serialization-1.9.0/setup.cfg --- old/oslo.serialization-1.6.0/setup.cfg 2015-06-02 17:09:32.000000000 +0200 +++ new/oslo.serialization-1.9.0/setup.cfg 2015-09-08 18:00:56.000000000 +0200 @@ -21,11 +21,7 @@ [files] packages = - oslo - oslo.serialization oslo_serialization -namespace_packages = - oslo [pbr] warnerrors = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/setup.py new/oslo.serialization-1.9.0/setup.py --- old/oslo.serialization-1.6.0/setup.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/setup.py 2015-09-08 18:00:19.000000000 +0200 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,5 +25,5 @@ pass setuptools.setup( - setup_requires=['pbr'], + setup_requires=['pbr>=1.3'], pbr=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/test-requirements.txt new/oslo.serialization-1.9.0/test-requirements.txt --- old/oslo.serialization-1.6.0/test-requirements.txt 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/test-requirements.txt 2015-09-08 18:00:19.000000000 +0200 @@ -1,15 +1,15 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -hacking>=0.10.0,<0.11 -mock>=1.0 -netaddr>=0.7.12 +hacking<0.11,>=0.10.0 +mock>=1.2 +netaddr!=0.7.16,>=0.7.12 # this is required for the docs build jobs -sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 -oslosphinx>=2.5.0 # Apache-2.0 +sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 +oslosphinx>=2.5.0 # Apache-2.0 -oslotest>=1.5.1 # Apache-2.0 +oslotest>=1.10.0 # Apache-2.0 simplejson>=2.2.0 -oslo.i18n>=1.5.0 # Apache-2.0 +oslo.i18n>=1.5.0 # Apache-2.0 coverage>=3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/tests/test_jsonutils.py new/oslo.serialization-1.9.0/tests/test_jsonutils.py --- old/oslo.serialization-1.6.0/tests/test_jsonutils.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/tests/test_jsonutils.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,316 +0,0 @@ -# Copyright 2011 OpenStack Foundation. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import collections -import datetime -import json -import uuid - -import mock -import netaddr -from oslotest import base as test_base -import simplejson -import six -import six.moves.xmlrpc_client as xmlrpclib - -from oslo.i18n import fixture -from oslo.serialization import jsonutils - - -class JSONUtilsTestMixin(object): - - json_impl = None - - def setUp(self): - super(JSONUtilsTestMixin, self).setUp() - self.json_patcher = mock.patch.multiple( - jsonutils, json=self.json_impl, - is_simplejson=self.json_impl is simplejson) - self.json_impl_mock = self.json_patcher.start() - - def tearDown(self): - self.json_patcher.stop() - super(JSONUtilsTestMixin, self).tearDown() - - def test_dumps(self): - self.assertEqual('{"a": "b"}', jsonutils.dumps({'a': 'b'})) - - def test_dumps_namedtuple(self): - n = collections.namedtuple("foo", "bar baz")(1, 2) - self.assertEqual('[1, 2]', jsonutils.dumps(n)) - - def test_dump(self): - expected = '{"a": "b"}' - json_dict = {'a': 'b'} - - fp = six.StringIO() - jsonutils.dump(json_dict, fp) - - self.assertEqual(expected, fp.getvalue()) - - def test_dump_namedtuple(self): - expected = '[1, 2]' - json_dict = collections.namedtuple("foo", "bar baz")(1, 2) - - fp = six.StringIO() - jsonutils.dump(json_dict, fp) - - self.assertEqual(expected, fp.getvalue()) - - def test_dumps_uuid(self): - self.assertEqual('"87edfaf4-9bff-11e4-82bd-b7b4e88d3780"', - jsonutils.dumps( - uuid.UUID("87edfaf49bff11e482bdb7b4e88d3780"))) - - def test_dump_set(self): - # Only test with one entry because the order is random :] - self.assertEqual("[1]", jsonutils.dumps(set([1]))) - - def test_loads(self): - self.assertEqual({'a': 'b'}, jsonutils.loads('{"a": "b"}')) - - def test_loads_unicode(self): - self.assertIsInstance(jsonutils.loads(b'"foo"'), six.text_type) - self.assertIsInstance(jsonutils.loads(u'"foo"'), six.text_type) - - # 'test' in Ukrainian - i18n_str_unicode = u'"\u0442\u0435\u0441\u0442"' - self.assertIsInstance(jsonutils.loads(i18n_str_unicode), six.text_type) - - i18n_str = i18n_str_unicode.encode('utf-8') - self.assertIsInstance(jsonutils.loads(i18n_str), six.text_type) - - def test_loads_with_kwargs(self): - jsontext = u'{"foo": 3}' - result = jsonutils.loads(jsontext, parse_int=lambda x: 5) - self.assertEqual(5, result['foo']) - - def test_load(self): - - jsontext = u'{"a": "\u0442\u044d\u0441\u0442"}' - expected = {u'a': u'\u0442\u044d\u0441\u0442'} - - for encoding in ('utf-8', 'cp1251'): - fp = six.BytesIO(jsontext.encode(encoding)) - result = jsonutils.load(fp, encoding=encoding) - self.assertEqual(expected, result) - for key, val in result.items(): - self.assertIsInstance(key, six.text_type) - self.assertIsInstance(val, six.text_type) - - -class JSONUtilsTestJson(JSONUtilsTestMixin, test_base.BaseTestCase): - json_impl = json - - -class JSONUtilsTestSimpleJson(JSONUtilsTestMixin, test_base.BaseTestCase): - json_impl = simplejson - - -class ToPrimitiveTestCase(test_base.BaseTestCase): - def setUp(self): - super(ToPrimitiveTestCase, self).setUp() - self.trans_fixture = self.useFixture(fixture.Translation()) - - def test_list(self): - self.assertEqual(jsonutils.to_primitive([1, 2, 3]), [1, 2, 3]) - - def test_set(self): - self.assertEqual(jsonutils.to_primitive(set([1, 2, 3])), [1, 2, 3]) - - def test_empty_list(self): - self.assertEqual(jsonutils.to_primitive([]), []) - - def test_tuple(self): - self.assertEqual(jsonutils.to_primitive((1, 2, 3)), [1, 2, 3]) - - def test_dict(self): - self.assertEqual(jsonutils.to_primitive(dict(a=1, b=2, c=3)), - dict(a=1, b=2, c=3)) - - def test_dict_values(self): - self.assertEqual( - jsonutils.to_primitive( - dict(a=uuid.UUID("DD9FB2B6-CE81-4A7B-8B56-90E35D650A0B"))), - dict(a=u"dd9fb2b6-ce81-4a7b-8b56-90e35d650a0b")) - - def test_dict_keys(self): - self.assertEqual( - jsonutils.to_primitive( - {uuid.UUID("DD9FB2B6-CE81-4A7B-8B56-90E35D650A0B"): 4}), - {u"dd9fb2b6-ce81-4a7b-8b56-90e35d650a0b": 4}) - - def test_empty_dict(self): - self.assertEqual(jsonutils.to_primitive({}), {}) - - def test_datetime(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - self.assertEqual(jsonutils.to_primitive(x), - '1920-02-03T04:05:06.000007') - - def test_uuid(self): - x = uuid.uuid4() - self.assertEqual(jsonutils.to_primitive(x), - six.text_type(x)) - - def test_datetime_preserve(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - self.assertEqual(jsonutils.to_primitive(x, convert_datetime=False), x) - - def test_DateTime(self): - x = xmlrpclib.DateTime() - x.decode("19710203T04:05:06") - self.assertEqual(jsonutils.to_primitive(x), - '1971-02-03T04:05:06.000000') - - def test_iter(self): - class IterClass(object): - def __init__(self): - self.data = [1, 2, 3, 4, 5] - self.index = 0 - - def __iter__(self): - return self - - def next(self): - if self.index == len(self.data): - raise StopIteration - self.index = self.index + 1 - return self.data[self.index - 1] - __next__ = next - - x = IterClass() - self.assertEqual(jsonutils.to_primitive(x), [1, 2, 3, 4, 5]) - - def test_iteritems(self): - class IterItemsClass(object): - def __init__(self): - self.data = dict(a=1, b=2, c=3).items() - self.index = 0 - - def iteritems(self): - return self.data - - x = IterItemsClass() - p = jsonutils.to_primitive(x) - self.assertEqual(p, {'a': 1, 'b': 2, 'c': 3}) - - def test_iteritems_with_cycle(self): - class IterItemsClass(object): - def __init__(self): - self.data = dict(a=1, b=2, c=3) - self.index = 0 - - def iteritems(self): - return self.data.items() - - x = IterItemsClass() - x2 = IterItemsClass() - x.data['other'] = x2 - x2.data['other'] = x - - # If the cycle isn't caught, to_primitive() will eventually result in - # an exception due to excessive recursion depth. - jsonutils.to_primitive(x) - - def test_instance(self): - class MysteryClass(object): - a = 10 - - def __init__(self): - self.b = 1 - - x = MysteryClass() - self.assertEqual(jsonutils.to_primitive(x, convert_instances=True), - dict(b=1)) - - self.assertEqual(jsonutils.to_primitive(x), x) - - def test_typeerror(self): - x = bytearray # Class, not instance - if six.PY3: - self.assertEqual(jsonutils.to_primitive(x), u"<class 'bytearray'>") - else: - self.assertEqual(jsonutils.to_primitive(x), u"<type 'bytearray'>") - - def test_nasties(self): - def foo(): - pass - x = [datetime, foo, dir] - ret = jsonutils.to_primitive(x) - self.assertEqual(len(ret), 3) - self.assertTrue(ret[0].startswith(u"<module 'datetime' from ") or - ret[0].startswith(u"<module 'datetime' (built-in)")) - if six.PY3: - self.assertTrue(ret[1].startswith( - '<function ToPrimitiveTestCase.test_nasties.<locals>.foo at 0x' - )) - else: - self.assertTrue(ret[1].startswith('<function foo at 0x')) - self.assertEqual(ret[2], '<built-in function dir>') - - def test_depth(self): - class LevelsGenerator(object): - def __init__(self, levels): - self._levels = levels - - def iteritems(self): - if self._levels == 0: - return iter([]) - else: - return iter([(0, LevelsGenerator(self._levels - 1))]) - - l4_obj = LevelsGenerator(4) - - json_l2 = {0: {0: '?'}} - json_l3 = {0: {0: {0: '?'}}} - json_l4 = {0: {0: {0: {0: '?'}}}} - - ret = jsonutils.to_primitive(l4_obj, max_depth=2) - self.assertEqual(ret, json_l2) - - ret = jsonutils.to_primitive(l4_obj, max_depth=3) - self.assertEqual(ret, json_l3) - - ret = jsonutils.to_primitive(l4_obj, max_depth=4) - self.assertEqual(ret, json_l4) - - def test_ipaddr(self): - thing = {'ip_addr': netaddr.IPAddress('1.2.3.4')} - ret = jsonutils.to_primitive(thing) - self.assertEqual({'ip_addr': '1.2.3.4'}, ret) - - def test_dumps_ipaddr(self): - thing = {'ip_addr': netaddr.IPAddress('1.2.3.4')} - ret = jsonutils.dumps(thing) - self.assertEqual('{"ip_addr": "1.2.3.4"}', ret) - - def test_dump_ipaddr(self): - thing = {'ip_addr': netaddr.IPAddress('1.2.3.4')} - fp = six.StringIO() - jsonutils.dump(thing, fp) - self.assertEqual('{"ip_addr": "1.2.3.4"}', fp.getvalue()) - - def test_message_with_param(self): - msg = self.trans_fixture.lazy('A message with param: %s') - msg = msg % 'test_domain' - ret = jsonutils.to_primitive(msg) - self.assertEqual(msg, ret) - - def test_message_with_named_param(self): - msg = self.trans_fixture.lazy('A message with params: %(param)s') - msg = msg % {'param': 'hello'} - ret = jsonutils.to_primitive(msg) - self.assertEqual(msg, ret) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/tests/test_msgpackutils.py new/oslo.serialization-1.9.0/tests/test_msgpackutils.py --- old/oslo.serialization-1.6.0/tests/test_msgpackutils.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/tests/test_msgpackutils.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,154 +0,0 @@ -# Copyright (C) 2015 Yahoo! Inc. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import datetime -import itertools -import sys -import uuid - -import netaddr -from oslotest import base as test_base -from pytz import timezone -import six -import six.moves.xmlrpc_client as xmlrpclib -import testtools - -from oslo_serialization import msgpackutils - -# NOTE(harlowja): itertools.count only started to take a step value -# in python 2.7+ so we can't use it in 2.6... -if sys.version_info[0:2] == (2, 6): - _PY26 = True -else: - _PY26 = False - - -_TZ_FMT = '%Y-%m-%d %H:%M:%S %Z%z' - - -def _dumps_loads(obj): - obj = msgpackutils.dumps(obj) - return msgpackutils.loads(obj) - - -class MsgPackUtilsTestMixin(test_base.BaseTestCase): - def test_list(self): - self.assertEqual(_dumps_loads([1, 2, 3]), [1, 2, 3]) - - def test_empty_list(self): - self.assertEqual(_dumps_loads([]), []) - - def test_tuple(self): - # Seems like we do lose whether it was a tuple or not... - # - # Maybe fixed someday: - # - # https://github.com/msgpack/msgpack-python/issues/98 - self.assertEqual(_dumps_loads((1, 2, 3)), [1, 2, 3]) - - def test_dict(self): - self.assertEqual(_dumps_loads(dict(a=1, b=2, c=3)), - dict(a=1, b=2, c=3)) - - def test_empty_dict(self): - self.assertEqual(_dumps_loads({}), {}) - - def test_complex_dict(self): - src = { - 'now': datetime.datetime(1920, 2, 3, 4, 5, 6, 7), - 'later': datetime.datetime(1921, 2, 3, 4, 5, 6, 9), - 'a': 1, - 'b': 2.0, - 'c': [], - 'd': set([1, 2, 3]), - 'zzz': uuid.uuid4(), - 'yyy': 'yyy', - 'ddd': b'bbb', - 'today': datetime.date.today(), - } - self.assertEqual(_dumps_loads(src), src) - - def test_itercount(self): - it = itertools.count(1) - six.next(it) - six.next(it) - it2 = _dumps_loads(it) - self.assertEqual(six.next(it), six.next(it2)) - - it = itertools.count(0) - it2 = _dumps_loads(it) - self.assertEqual(six.next(it), six.next(it2)) - - @testtools.skipIf(_PY26, 'itertools.count step not supported') - def test_itercount_step(self): - it = itertools.count(1, 3) - it2 = _dumps_loads(it) - self.assertEqual(six.next(it), six.next(it2)) - - def test_set(self): - self.assertEqual(_dumps_loads(set([1, 2])), set([1, 2])) - - def test_empty_set(self): - self.assertEqual(_dumps_loads(set([])), set([])) - - def test_frozenset(self): - self.assertEqual(_dumps_loads(frozenset([1, 2])), frozenset([1, 2])) - - def test_empty_frozenset(self): - self.assertEqual(_dumps_loads(frozenset([])), frozenset([])) - - def test_datetime_preserve(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - self.assertEqual(_dumps_loads(x), x) - - def test_datetime(self): - x = xmlrpclib.DateTime() - x.decode("19710203T04:05:06") - self.assertEqual(_dumps_loads(x), x) - - def test_ipaddr(self): - thing = {'ip_addr': netaddr.IPAddress('1.2.3.4')} - self.assertEqual(_dumps_loads(thing), thing) - - def test_today(self): - today = datetime.date.today() - self.assertEqual(today, _dumps_loads(today)) - - def test_datetime_tz_clone(self): - eastern = timezone('US/Eastern') - now = datetime.datetime.now() - e_dt = eastern.localize(now) - e_dt2 = _dumps_loads(e_dt) - self.assertEqual(e_dt, e_dt2) - self.assertEqual(e_dt.strftime(_TZ_FMT), e_dt2.strftime(_TZ_FMT)) - - def test_datetime_tz_different(self): - eastern = timezone('US/Eastern') - pacific = timezone('US/Pacific') - now = datetime.datetime.now() - - e_dt = eastern.localize(now) - p_dt = pacific.localize(now) - - self.assertNotEqual(e_dt, p_dt) - self.assertNotEqual(e_dt.strftime(_TZ_FMT), p_dt.strftime(_TZ_FMT)) - - e_dt2 = _dumps_loads(e_dt) - p_dt2 = _dumps_loads(p_dt) - - self.assertNotEqual(e_dt2, p_dt2) - self.assertNotEqual(e_dt2.strftime(_TZ_FMT), p_dt2.strftime(_TZ_FMT)) - - self.assertEqual(e_dt, e_dt2) - self.assertEqual(p_dt, p_dt2) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/tests/test_warning.py new/oslo.serialization-1.9.0/tests/test_warning.py --- old/oslo.serialization-1.6.0/tests/test_warning.py 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/tests/test_warning.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,61 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import imp -import os -import warnings - -import mock -from oslotest import base as test_base -import six - - -class DeprecationWarningTest(test_base.BaseTestCase): - - @mock.patch('warnings.warn') - def test_warning(self, mock_warn): - import oslo.serialization - imp.reload(oslo.serialization) - self.assertTrue(mock_warn.called) - args = mock_warn.call_args - self.assertIn('oslo_serialization', args[0][0]) - self.assertIn('deprecated', args[0][0]) - self.assertTrue(issubclass(args[0][1], DeprecationWarning)) - - def test_real_warning(self): - with warnings.catch_warnings(record=True) as warning_msgs: - warnings.resetwarnings() - warnings.simplefilter('always', DeprecationWarning) - import oslo.serialization - - # Use a separate function to get the stack level correct - # so we know the message points back to this file. This - # corresponds to an import or reload, which isn't working - # inside the test under Python 3.3. That may be due to a - # difference in the import implementation not triggering - # warnings properly when the module is reloaded, or - # because the warnings module is mostly implemented in C - # and something isn't cleanly resetting the global state - # used to track whether a warning needs to be - # emitted. Whatever the cause, we definitely see the - # warnings.warn() being invoked on a reload (see the test - # above) and warnings are reported on the console when we - # run the tests. A simpler test script run outside of - # testr does correctly report the warnings. - def foo(): - oslo.serialization.deprecated() - - foo() - self.assertEqual(1, len(warning_msgs)) - msg = warning_msgs[0] - self.assertIn('oslo_serialization', six.text_type(msg.message)) - self.assertEqual('test_warning.py', os.path.basename(msg.filename)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-1.6.0/tox.ini new/oslo.serialization-1.9.0/tox.ini --- old/oslo.serialization-1.6.0/tox.ini 2015-06-02 17:08:56.000000000 +0200 +++ new/oslo.serialization-1.9.0/tox.ini 2015-09-08 18:00:19.000000000 +0200 @@ -35,3 +35,11 @@ show-source = True ignore = E123,E125,H803 exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build + +[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_serialization* --ignore-module=pkg_resources --ignore-file=oslo_serialization/test.py --ignore-file=oslo_serialization/tests/* oslo_serialization \ No newline at end of file