commit:     2c7bdc17799ac9bc164ff4ec92f7105f3a9d6cad
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Tue Aug 27 21:37:18 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Aug 27 21:38:28 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c7bdc17

app-admin/salt: Revbump, update to work with newer deps

Newer pyyaml and jsonschema need patches to pass tests properly.

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.73, Repoman-2.3.17
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 .../salt/files/salt-2019.2.0-newer-deps.patch      | 210 +++++++++++++++++++++
 ...salt-2019.2.0-skip-tests-that-oom-machine.patch |  20 ++
 ...alt-2019.2.0.ebuild => salt-2019.2.0-r1.ebuild} |   8 +-
 3 files changed, 235 insertions(+), 3 deletions(-)

diff --git a/app-admin/salt/files/salt-2019.2.0-newer-deps.patch 
b/app-admin/salt/files/salt-2019.2.0-newer-deps.patch
new file mode 100644
index 00000000000..bdf95e21089
--- /dev/null
+++ b/app-admin/salt/files/salt-2019.2.0-newer-deps.patch
@@ -0,0 +1,210 @@
+diff --git a/salt/modules/dockercompose.py b/salt/modules/dockercompose.py
+index 61e937536c..0f37e0d43a 100644
+--- a/salt/modules/dockercompose.py
++++ b/salt/modules/dockercompose.py
+@@ -241,7 +241,7 @@ def __load_docker_compose(path):
+                                     None, None)
+     try:
+         with salt.utils.files.fopen(file_path, 'r') as fl:
+-            loaded = yaml.load(fl)
++            loaded = yaml.safe_load(fl)
+     except EnvironmentError:
+         return None, __standardize_result(False,
+                                     'Could not read {0}'.format(file_path),
+@@ -371,7 +371,7 @@ def __load_compose_definitions(path, definition):
+                                               None, None)
+     else:
+         try:
+-            loaded_definition = yaml.load(definition)
++            loaded_definition = yaml.safe_load(definition)
+         except yaml.YAMLError as yerr:
+             msg = 'Could not parse {0} {1}'.format(definition, yerr)
+             return None, None, __standardize_result(False, msg,
+diff --git a/salt/serializers/yaml.py b/salt/serializers/yaml.py
+index c95b40e48f..2154e5dcab 100644
+--- a/salt/serializers/yaml.py
++++ b/salt/serializers/yaml.py
+@@ -72,6 +72,7 @@ def serialize(obj, **options):
+     '''
+ 
+     options.setdefault('Dumper', Dumper)
++    options.setdefault('default_flow_style', None)
+     try:
+         response = yaml.dump(obj, **options)
+         if response.endswith('\n...\n'):
+diff --git a/salt/serializers/yamlex.py b/salt/serializers/yamlex.py
+index 2e4ba6fb2b..e42634f580 100644
+--- a/salt/serializers/yamlex.py
++++ b/salt/serializers/yamlex.py
+@@ -182,6 +182,7 @@ def serialize(obj, **options):
+     '''
+ 
+     options.setdefault('Dumper', Dumper)
++    options.setdefault('default_flow_style', None)
+     try:
+         response = yaml.dump(obj, **options)
+         if response.endswith('\n...\n'):
+diff --git a/salt/utils/yamldumper.py b/salt/utils/yamldumper.py
+index 9892c87d23..3692ea324a 100644
+--- a/salt/utils/yamldumper.py
++++ b/salt/utils/yamldumper.py
+@@ -115,6 +115,7 @@ def dump(data, stream=None, **kwargs):
+     '''
+     if 'allow_unicode' not in kwargs:
+         kwargs['allow_unicode'] = True
++    kwargs.setdefault('default_flow_style', None)
+     return yaml.dump(data, stream, **kwargs)
+ 
+ 
+@@ -126,4 +127,5 @@ def safe_dump(data, stream=None, **kwargs):
+     '''
+     if 'allow_unicode' not in kwargs:
+         kwargs['allow_unicode'] = True
++    kwargs.setdefault('default_flow_style', None)
+     return yaml.dump(data, stream, Dumper=SafeOrderedDumper, **kwargs)
+diff --git a/tests/integration/utils/test_win_runas.py 
b/tests/integration/utils/test_win_runas.py
+index 3042a77991..d4057a4d03 100644
+--- a/tests/integration/utils/test_win_runas.py
++++ b/tests/integration/utils/test_win_runas.py
+@@ -539,7 +539,7 @@ class RunAsTest(ModuleCase):
+         win32serviceutil.StartService('test service')
+         wait_for_service('test service')
+         with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
+-            ret = yaml.load(fp)
++            ret = yaml.safe_load(fp)
+         assert ret['retcode'] == 1, ret
+ 
+     @with_system_user('test-runas', on_existing='delete', delete=True,
+@@ -560,7 +560,7 @@ class RunAsTest(ModuleCase):
+         win32serviceutil.StartService('test service')
+         wait_for_service('test service')
+         with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
+-            ret = yaml.load(fp)
++            ret = yaml.safe_load(fp)
+         assert ret['retcode'] == 1, ret
+ 
+     @with_system_user('test-runas-admin', on_existing='delete', delete=True,
+@@ -581,7 +581,7 @@ class RunAsTest(ModuleCase):
+         win32serviceutil.StartService('test service')
+         wait_for_service('test service')
+         with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
+-            ret = yaml.load(fp)
++            ret = yaml.safe_load(fp)
+         assert ret['retcode'] == 0, ret
+ 
+     @with_system_user('test-runas-admin', on_existing='delete', delete=True,
+@@ -602,7 +602,7 @@ class RunAsTest(ModuleCase):
+         win32serviceutil.StartService('test service')
+         wait_for_service('test service')
+         with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
+-            ret = yaml.load(fp)
++            ret = yaml.safe_load(fp)
+         assert ret['retcode'] == 0, ret
+ 
+     def test_runas_service_system_user(self):
+@@ -621,5 +621,5 @@ class RunAsTest(ModuleCase):
+         win32serviceutil.StartService('test service')
+         wait_for_service('test service')
+         with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
+-            ret = yaml.load(fp)
++            ret = yaml.safe_load(fp)
+         assert ret['retcode'] == 0, ret
+diff --git a/tests/unit/serializers/test_serializers.py 
b/tests/unit/serializers/test_serializers.py
+index 3bf42b67d7..ea42d617d7 100644
+--- a/tests/unit/serializers/test_serializers.py
++++ b/tests/unit/serializers/test_serializers.py
+@@ -68,9 +68,24 @@ class TestSerializers(TestCase):
+         serialized = yamlex.serialize(data)
+         assert serialized == '{foo: bar}', serialized
+ 
++        serialized = yamlex.serialize(data, default_flow_style=False)
++        assert serialized == 'foo: bar', serialized
++
+         deserialized = yamlex.deserialize(serialized)
+         assert deserialized == data, deserialized
+ 
++        serialized = yaml.serialize(data)
++        assert serialized == '{foo: bar}', serialized
++
++        deserialized = yaml.deserialize(serialized)
++        assert deserialized == data, deserialized
++
++        serialized = yaml.serialize(data, default_flow_style=False)
++        assert serialized == 'foo: bar', serialized
++
++        deserialized = yaml.deserialize(serialized)
++        assert deserialized == data, deserialized
++
+     @skipIf(not yamlex.available, SKIP_MESSAGE % 'sls')
+     def test_serialize_complex_sls(self):
+         data = OrderedDict([
+@@ -84,6 +99,12 @@ class TestSerializers(TestCase):
+         deserialized = yamlex.deserialize(serialized)
+         assert deserialized == data, deserialized
+ 
++        serialized = yaml.serialize(data)
++        assert serialized == '{bar: 2, baz: true, foo: 1}', serialized
++
++        deserialized = yaml.deserialize(serialized)
++        assert deserialized == data, deserialized
++
+     @skipIf(not yaml.available, SKIP_MESSAGE % 'yaml')
+     @skipIf(not yamlex.available, SKIP_MESSAGE % 'sls')
+     def test_compare_sls_vs_yaml(self):
+diff --git a/tests/unit/utils/test_schema.py b/tests/unit/utils/test_schema.py
+index 677cd0778b..5c2f1fd8fd 100644
+--- a/tests/unit/utils/test_schema.py
++++ b/tests/unit/utils/test_schema.py
+@@ -5,6 +5,7 @@
+ 
+ # Import python libs
+ from __future__ import absolute_import, print_function, unicode_literals
++import sys
+ import copy
+ 
+ # Import Salt Testing Libs
+@@ -506,7 +507,7 @@ class ConfigTestCase(TestCase):
+                 {'personal_access_token': 'foo'},
+                 Requirements.serialize()
+             )
+-        self.assertIn('is not valid under any of the given schemas', 
excinfo.exception.message)
++        self.assertIn("'ssh_key_file' is a required property", 
excinfo.exception.message)
+ 
+     def test_boolean_config(self):
+         item = schema.BooleanItem(title='Hungry', description='Are you 
hungry?')
+@@ -1730,7 +1731,10 @@ class ConfigTestCase(TestCase):
+ 
+         with self.assertRaises(jsonschema.exceptions.ValidationError) as 
excinfo:
+             jsonschema.validate({'item': {'sides': '4', 'color': 'blue'}}, 
TestConf.serialize())
+-        self.assertIn('is not valid under any of the given schemas', 
excinfo.exception.message)
++        if sys.hexversion >= 0x03000000:
++            self.assertIn("'4' is not of type 'boolean'", 
excinfo.exception.message)
++        else:
++            self.assertIn("u'4' is not of type u'boolean'", 
excinfo.exception.message)
+ 
+         class TestConf(schema.Schema):
+             item = schema.DictItem(
+@@ -1833,7 +1837,10 @@ class ConfigTestCase(TestCase):
+ 
+         with self.assertRaises(jsonschema.exceptions.ValidationError) as 
excinfo:
+             jsonschema.validate({'item': ['maybe']}, TestConf.serialize())
+-        self.assertIn('is not valid under any of the given schemas', 
excinfo.exception.message)
++        if sys.hexversion >= 0x03000000:
++            self.assertIn("'maybe' is not one of ['yes']", 
excinfo.exception.message)
++        else:
++            self.assertIn("u'maybe' is not one of [u'yes']", 
excinfo.exception.message)
+ 
+         with self.assertRaises(jsonschema.exceptions.ValidationError) as 
excinfo:
+             jsonschema.validate({'item': 2}, TestConf.serialize())
+@@ -1885,7 +1892,10 @@ class ConfigTestCase(TestCase):
+ 
+         with self.assertRaises(jsonschema.exceptions.ValidationError) as 
excinfo:
+             jsonschema.validate({'item': ['maybe']}, TestConf.serialize())
+-        self.assertIn('is not valid under any of the given schemas', 
excinfo.exception.message)
++        if sys.hexversion >= 0x03000000:
++            self.assertIn("'maybe' is not one of ['yes']", 
excinfo.exception.message)
++        else:
++            self.assertIn("u'maybe' is not one of [u'yes']", 
excinfo.exception.message)
+ 
+         with self.assertRaises(jsonschema.exceptions.ValidationError) as 
excinfo:
+             jsonschema.validate({'item': 2}, TestConf.serialize())

diff --git 
a/app-admin/salt/files/salt-2019.2.0-skip-tests-that-oom-machine.patch 
b/app-admin/salt/files/salt-2019.2.0-skip-tests-that-oom-machine.patch
new file mode 100644
index 00000000000..d0172d73955
--- /dev/null
+++ b/app-admin/salt/files/salt-2019.2.0-skip-tests-that-oom-machine.patch
@@ -0,0 +1,20 @@
+diff --git a/tests/unit/modules/test_boto_apigateway.py 
b/tests/unit/modules/test_boto_apigateway.py
+index be26b3f093..ca971556d5 100644
+--- a/tests/unit/modules/test_boto_apigateway.py
++++ b/tests/unit/modules/test_boto_apigateway.py
+@@ -169,6 +169,7 @@ def _has_required_botocore():
+         return True
+ 
+ 
++@skipIf(True, "Causes machines to OOM")
+ class BotoApiGatewayTestCaseBase(TestCase, LoaderModuleMockMixin):
+     conn = None
+ 
+@@ -207,6 +208,7 @@ class BotoApiGatewayTestCaseBase(TestCase, 
LoaderModuleMockMixin):
+         self.addCleanup(delattr, self, 'conn')
+ 
+ 
++@skipIf(True, "Causes machines to OOM")
+ class BotoApiGatewayTestCaseMixin(object):
+     def _diff_list_dicts(self, listdict1, listdict2, sortkey):
+         '''

diff --git a/app-admin/salt/salt-2019.2.0.ebuild 
b/app-admin/salt/salt-2019.2.0-r1.ebuild
similarity index 94%
rename from app-admin/salt/salt-2019.2.0.ebuild
rename to app-admin/salt/salt-2019.2.0-r1.ebuild
index 16433de1b07..eb02c39bf6f 100644
--- a/app-admin/salt/salt-2019.2.0.ebuild
+++ b/app-admin/salt/salt-2019.2.0-r1.ebuild
@@ -92,9 +92,11 @@ REQUIRED_USE="|| ( raet zeromq )"
 RESTRICT="x86? ( test )"
 
 PATCHES=(
-       "${FILESDIR}/${PN}-2017.7.0-dont-realpath-tmpdir.patch"
-       "${FILESDIR}/${PN}-2019.2.0-tests.patch"
-       "${FILESDIR}/${PN}-2018.3.2-skip-zeromq-test-that-hangs.patch"
+       "${FILESDIR}/salt-2017.7.0-dont-realpath-tmpdir.patch"
+       "${FILESDIR}/salt-2019.2.0-tests.patch"
+       "${FILESDIR}/salt-2018.3.2-skip-zeromq-test-that-hangs.patch"
+       "${FILESDIR}/salt-2019.2.0-skip-tests-that-oom-machine.patch"
+       "${FILESDIR}/salt-2019.2.0-newer-deps.patch"
 )
 
 python_prepare() {

Reply via email to