Python 3.9 compatibility

This commit is contained in:
Miro Hrončok 2020-01-06 14:20:09 +01:00
parent 564dd44984
commit a489112e48
2 changed files with 71 additions and 4 deletions

View File

@ -0,0 +1,64 @@
From 9f0e834b2e5eea5dfe21d5be4ea6a3df47baf0b9 Mon Sep 17 00:00:00 2001
From: Timo Furrer <timo.furrer@roche.com>
Date: Wed, 20 Feb 2019 13:26:46 +0100
Subject: [PATCH] Import ABCs from collections.abc. Closes #150
---
.travis.yml | 10 +++++++---
sure/compat.py | 5 +++++
sure/old.py | 5 +----
tests/test_assertion_builder.py | 2 +-
4 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/sure/compat.py b/sure/compat.py
index df8d323..c53ab28 100644
--- a/sure/compat.py
+++ b/sure/compat.py
@@ -5,6 +5,11 @@
import six
from collections import OrderedDict
+try:
+ from collections.abc import Iterable
+except ImportError:
+ from collections import Iterable
+
from sure.terminal import red, green, yellow
diff --git a/sure/old.py b/sure/old.py
index e861b26..53e4ee4 100644
--- a/sure/old.py
+++ b/sure/old.py
@@ -22,10 +22,6 @@
from copy import deepcopy
from pprint import pformat
from functools import wraps
-try:
- from collections import Iterable
-except ImportError:
- Iterable = (list, dict, tuple, set)
try:
import __builtin__ as builtins
@@ -43,6 +39,7 @@
from sure.core import _get_file_name
from sure.core import _get_line_number
from sure.core import itemize_length
+from sure.compat import Iterable
def identify_callable_location(callable_object):
diff --git a/tests/test_assertion_builder.py b/tests/test_assertion_builder.py
index 4dc00fc..c043648 100644
--- a/tests/test_assertion_builder.py
+++ b/tests/test_assertion_builder.py
@@ -137,7 +137,7 @@ def test_should_be_a():
("this(None).should.be.none")
assert this(1).should.be.an(int)
- assert this([]).should.be.a('collections.Iterable')
+ assert this([]).should.be.a('sure.compat.Iterable')
assert this({}).should_not.be.a(list)
def opposite():

View File

@ -7,7 +7,12 @@ Summary: Utility belt for automated testing in Python
License: GPLv3+
URL: https://github.com/gabrielfalcao/sure
Source0: https://files.pythonhosted.org/packages/source/s/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
Source0: %{pypi_source}
# Python 3.9 compatibility
# https://github.com/gabrielfalcao/sure/commit/9f0e834b2e5eea5dfe21d5be4ea6a3df47baf0b9
Patch1: 9f0e834b2e5eea5dfe21d5be4ea6a3df47baf0b9.patch
BuildArch: noarch
BuildRequires: python3-devel
@ -32,9 +37,7 @@ heavily inspired by should.js.
%prep
%setup -q -n %{pypi_name}-%{version}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
%autosetup -p1 -n %{pypi_name}-%{version}
%build