diff --git a/0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch b/0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch new file mode 100644 index 0000000..9b58b26 --- /dev/null +++ b/0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch @@ -0,0 +1,62 @@ +From 97f0a2315736e50f1b34a015447cd751da66ecb6 Mon Sep 17 00:00:00 2001 +From: Dirk Mueller +Date: Mon, 25 Jan 2021 22:49:04 +0100 +Subject: [PATCH] Use Yaml's UnsafeLoader for Python embedding tests + +In newer PyYAML versions the default FullLoader has +python/object/* integration removed. One has to use +UnsafeLoader instead. see this issue for details: + +https://github.com/yaml/pyyaml/issues/321 +--- + test/test_example.py | 2 +- + test/test_functional.py | 10 +++++----- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/test/test_example.py b/test/test_example.py +index db2cf17..1d27043 100644 +--- a/test/test_example.py ++++ b/test/test_example.py +@@ -151,7 +151,7 @@ if have_yaml_support: + + @ddt + class YamlOnlyTestCase(unittest.TestCase): +- @file_data('data/test_custom_yaml_loader.yaml', yaml.FullLoader) ++ @file_data('data/test_custom_yaml_loader.yaml', yaml.UnsafeLoader) + def test_custom_yaml_loader(self, instance, expected): + """Test with yaml tags to create specific classes to compare""" + self.assertEqual(expected, instance) +diff --git a/test/test_functional.py b/test/test_functional.py +index 45c1cae..f9609c6 100644 +--- a/test/test_functional.py ++++ b/test/test_functional.py +@@ -440,7 +440,7 @@ def test_load_yaml_with_python_tag(): + loader allowing python tags is passed. + """ + +- from yaml import FullLoader ++ from yaml import UnsafeLoader + from yaml.constructor import ConstructorError + + def str_to_type(class_name): +@@ -457,13 +457,13 @@ def test_load_yaml_with_python_tag(): + raise AssertionError() + + @ddt +- class YamlFullLoaderTest(object): +- @file_data('data/test_functional_custom_tags.yaml', FullLoader) ++ class YamlUnsafeLoaderTest(object): ++ @file_data('data/test_functional_custom_tags.yaml', UnsafeLoader) + def test_cls_is_instance(self, instance, expected): + assert isinstance(instance, str_to_type(expected)) + +- tests = list(filter(_is_test, YamlFullLoaderTest.__dict__)) +- obj = YamlFullLoaderTest() ++ tests = list(filter(_is_test, YamlUnsafeLoaderTest.__dict__)) ++ obj = YamlUnsafeLoaderTest() + + if not tests: + raise AssertionError('No tests have been found.') +-- +2.30.0 + diff --git a/python-ddt.changes b/python-ddt.changes index f2b4891..37e514f 100644 --- a/python-ddt.changes +++ b/python-ddt.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jan 25 21:52:46 UTC 2021 - Dirk Müller + +- add 0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch + ------------------------------------------------------------------- Thu May 28 03:09:23 UTC 2020 - Steve Kowalik diff --git a/python-ddt.spec b/python-ddt.spec index 8dcaa23..359b888 100644 --- a/python-ddt.spec +++ b/python-ddt.spec @@ -1,7 +1,7 @@ # # spec file for package python-ddt # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,6 +25,8 @@ Summary: Data-Driven/Decorated Tests License: MIT URL: https://github.com/txels/ddt Source: https://files.pythonhosted.org/packages/source/d/ddt/ddt-%{version}.tar.gz +# https://github.com/datadriventests/ddt/pull/96 +Patch1: 0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -43,6 +45,7 @@ A library to multiply test cases. %prep %setup -q -n ddt-%{version} +%autopatch -p1 %build %python_build