- add 0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ddt?expand=0&rev=28
This commit is contained in:
Dirk Mueller 2021-01-25 21:53:04 +00:00 committed by Git OBS Bridge
parent b2f247f8fb
commit 670eff0027
3 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,62 @@
From 97f0a2315736e50f1b34a015447cd751da66ecb6 Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk@dmllr.de>
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

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Mon Jan 25 21:52:46 UTC 2021 - Dirk Müller <dmueller@suse.com>
- add 0001-Use-Yaml-s-UnsafeLoader-for-Python-embedding-tests.patch
-------------------------------------------------------------------
Thu May 28 03:09:23 UTC 2020 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -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