diff --git a/.gitignore b/.gitignore
index 8dc6858..cf703b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@ python-suds-0.3.8.tar.gz
python-suds-0.3.9.tar.gz
/python-suds-0.4.1.tar.gz
/94664ddd46a6.tar.bz2
+/suds-0.8.4.tar.gz
diff --git a/fix_http_test.patch b/fix_http_test.patch
deleted file mode 100644
index d92ce92..0000000
--- a/fix_http_test.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -up jurko-suds-94664ddd46a6/tests/test_transport_http.py.httptestfix jurko-suds-94664ddd46a6/tests/test_transport_http.py
---- jurko-suds-94664ddd46a6/tests/test_transport_http.py.httptestfix 2015-07-27 05:08:20.000000000 -0400
-+++ jurko-suds-94664ddd46a6/tests/test_transport_http.py 2016-01-09 23:29:22.749940293 -0500
-@@ -120,6 +120,9 @@ class MockFP:
- def readline():
- raise MustNotBeCalled
-
-+ def close(self):
-+ pass
-+
-
- class MockURLOpenerSaboteur:
- """
-@@ -295,12 +298,18 @@ def test_sending_using_network_sockets(s
- self.__mocker.mock_sent_data += data
- def settimeout(self, *args, **kwargs):
- pass
-+ def setsockopt(self, level, optname, value):
-+ pass
-
- class MockSocketReader(CountedMock):
- def __init__(self):
- super(MockSocketReader, self).__init__()
- def readline(self, *args, **kwargs):
- raise MyException
-+ def close(self):
-+ pass
-+ def flush(self):
-+ pass
-
- # Setup.
- host = "an-easily-recognizable-host-name-214894932"
diff --git a/pytest4.patch b/pytest4.patch
deleted file mode 100644
index 43ef73c..0000000
--- a/pytest4.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index 4666800..e09e5e8 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -89,7 +89,7 @@ command = py342.cmd
- [env:3.4.2 x86]
- command = py342_x86.cmd
-
--[pytest]
-+[tool:pytest]
- # Folders 'pytest' unit testing framework should avoid when collecting test
- # cases to run, e.g. internal build & version control system folders.
- norecursedirs = .git .hg .svn build dist
-diff --git a/tests/test_argument_parser.py b/tests/test_argument_parser.py
-index 64a5778..402e318 100644
---- a/tests/test_argument_parser.py
-+++ b/tests/test_argument_parser.py
-@@ -95,7 +95,7 @@ class MockParamType:
- # the argument parsing functionality. This will remove code duplication
- # between different binding implementations and make their features more
- # balanced.
-- pytest.mark.xfail(reason="Not yet implemented.")("rpc")
-+ pytest.param("rpc", marks=pytest.mark.xfail(reason="Not yet implemented.")),
- ))
- def test_binding_uses_argument_parsing(monkeypatch, binding_style):
- """
-@@ -158,7 +158,7 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
- # the argument parsing functionality. This will remove code duplication
- # between different binding implementations and make their features more
- # balanced.
-- pytest.mark.xfail(reason="Not yet implemented.")("rpc")
-+ pytest.param("rpc", marks=pytest.mark.xfail(reason="Not yet implemented.")),
- ))
- def test_binding_for_an_operation_with_no_input_uses_argument_parsing(
- monkeypatch, binding_style):
-diff --git a/tests/test_input_parameters.py b/tests/test_input_parameters.py
-index f4ab7a7..4a817a4 100644
---- a/tests/test_input_parameters.py
-+++ b/tests/test_input_parameters.py
-@@ -268,8 +268,8 @@ class TestUnsupportedParameterDefinitions:
- self.service = client.service
-
- @pytest.mark.parametrize("test_args_required", (
-- pytest.mark.xfail(reason="empty choice member items not supported")(
-- True),
-+ pytest.param(True, marks=pytest.mark.xfail(
-+ reason="empty choice member items not supported")),
- False))
- def test_choice_containing_an_empty_sequence(self, test_args_required):
- """
-@@ -295,15 +295,16 @@ class TestUnsupportedParameterDefinitions:
- @pytest.mark.parametrize("choice", (
- # Explicitly marked as optional and containing only non-optional
- # elements.
-- pytest.mark.xfail(reason="suds does not yet support minOccurs/"
-- "maxOccurs attributes on all/choice/sequence order indicators")(
-+ pytest.param(
- """\
-
-
-
-
-
-- """),
-+ """, marks=pytest.mark.xfail(
-+ reason="suds does not yet support minOccurs/"
-+ "maxOccurs attributes on all/choice/sequence order indicators")),
- # Explicitly marked as optional and containing at least one
- # non-optional element.
- """\
-diff --git a/tests/test_request_construction.py b/tests/test_request_construction.py
-index 3fef3fe..90e42bd 100644
---- a/tests/test_request_construction.py
-+++ b/tests/test_request_construction.py
-@@ -94,9 +94,12 @@ def parametrize_single_element_input_test(param_names, param_values):
- args, request_body = next_value[:2]
- xfail = len(next_value) == 3
- param = (xsd, external_element_name, args, request_body)
-- if xfail:
-- param = pytest.mark.xfail(param, reason=next_value[2])
-- expanded_param_values.append(param)
-+ #if xfail:
-+ # param = pytest.mark.xfail(param, reason=next_value[2])
-+ #expanded_param_values.append(param)
-+ # Manually skip xfails for now since there's no way to mark
-+ if not xfail:
-+ expanded_param_values.append(param)
- return (param_names, expanded_param_values), {}
-
-
-diff --git a/tests/test_sax_encoder.py b/tests/test_sax_encoder.py
-index f7d1f37..65deb70 100644
---- a/tests/test_sax_encoder.py
-+++ b/tests/test_sax_encoder.py
-@@ -141,7 +141,7 @@ symmetric_decoded_encoded_test_data__broken_encode = [
- (e, d) for d, e in
- symmetric_decoded_encoded_test_data +
- symmetric_decoded_encoded_test_data__broken_encode] + [
-- pytest.mark.xfail((e, d), reason="CDATA encoding not supported yet")
-+ pytest.param(e, d, marks=pytest.mark.xfail(reason="CDATA encoding not supported yet"))
- for d, e in symmetric_decoded_encoded_test_data__broken] + [
- # Character reference lookalikes.
- (x, x) for x in (
-@@ -164,7 +164,7 @@ def test_decode(input, expected):
-
- @pytest.mark.parametrize(("input", "expected"),
- symmetric_decoded_encoded_test_data + [
-- pytest.mark.xfail(x, reason="CDATA encoding not supported yet") for x in
-+ pytest.param(x, y, marks=pytest.mark.xfail(reason="CDATA encoding not supported yet")) for x, y in
- symmetric_decoded_encoded_test_data__broken +
- symmetric_decoded_encoded_test_data__broken_encode] + [
- # Double encoding.
-diff --git a/tests/testutils/indirect_parametrize.py b/tests/testutils/indirect_parametrize.py
-index a8f1e0f..4be9950 100644
---- a/tests/testutils/indirect_parametrize.py
-+++ b/tests/testutils/indirect_parametrize.py
-@@ -112,19 +112,15 @@ def pytest_configure(config):
- "argument list and keyword argument dictionary) based on the received "
- "input data. For more detailed information see the "
- "indirect_parametrize pytest plugin implementation module.")
-+ """pytest hook publishing references in the toplevel pytest namespace."""
-+ pytest.indirect_parametrize = indirect_parametrize
-
-
- def pytest_generate_tests(metafunc):
- """pytest hook called for all detected test functions."""
-- func = metafunc.function
-- try:
-- mark = func.indirect_parametrize
-- except AttributeError:
-+ mark = metafunc.definition.get_closest_marker('indirect_parametrize')
-+ if not mark:
- return
- args, kwargs = mark.args[0](*mark.args[1:], **mark.kwargs)
- metafunc.parametrize(*args, **kwargs)
-
--
--def pytest_namespace():
-- """pytest hook publishing references in the toplevel pytest namespace."""
-- return {'indirect_parametrize': indirect_parametrize}
diff --git a/python-suds.spec b/python-suds.spec
index 8ea0395..b85db5f 100644
--- a/python-suds.spec
+++ b/python-suds.spec
@@ -1,5 +1,3 @@
-%global commit 94664ddd46a61d06862fa8fb6ba7b9e054214f57
-%global shortcommit %(c=%{commit}; echo ${c:0:12})
%global srcname suds
%global sum A python SOAP client
%global desc \
@@ -11,15 +9,12 @@ services and WSDL based objects can be easily inspected.
Summary: %{sum}
Name: python-suds
-Version: 0.7
-Release: 0.17.%{shortcommit}%{?dist}
-Source0: https://bitbucket.org/jurko/suds/get/%{shortcommit}.tar.bz2
-Patch0: fix_http_test.patch
-Patch1: pytest4.patch
-Patch2: python3.8.patch
+Version: 0.8.4
+Release: 1%{?dist}
+Source0: https://github.com/suds-community/suds/archive/v%{version}.tar.gz#/%{srcname}-%{version}.tar.gz
License: LGPLv3+
BuildArch: noarch
-URL: https://bitbucket.org/jurko/suds
+URL: https://github.com/suds-community/suds
%description %{desc}
@@ -30,10 +25,7 @@ Summary: %{sum}
%description -n python3-%{srcname} %{desc}
%prep
-%setup -q -n jurko-suds-%{shortcommit}
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
+%autosetup -p1 -n %{srcname}-%{version}
%build
%py3_build
@@ -46,10 +38,13 @@ Summary: %{sum}
%files -n python3-%{srcname}
%{python3_sitelib}/%{srcname}*/
-%doc README.rst
+%doc README.md
%license LICENSE.txt
%changelog
+* Tue Feb 18 2020 Scott Talbert - 0.8.4-1
+- Switch to new upstream https://github.com/suds-community/suds
+
* Thu Jan 30 2020 Fedora Release Engineering - 0.7-0.17.94664ddd46a6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/python3.8.patch b/python3.8.patch
deleted file mode 100644
index 1dee0da..0000000
--- a/python3.8.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tests/test_transport.py b/tests/test_transport.py
-index d045aaf..cbcdecd 100644
---- a/tests/test_transport.py
-+++ b/tests/test_transport.py
-@@ -140,7 +140,7 @@ and I'm all out of gum."""),
- ("", {}, "\n\n\n\n\n\n"),
- ("", {}, u("\u4E2D\u539F\u5343\u519B\u9010\u848B"))))
- def test_string_representation_with_message(self, url, headers, message):
-- for key, value in headers.items():
-+ for key, value in list(headers.items()):
- old_key = key
- if isinstance(key, text_type):
- key = key.encode("utf-8")
diff --git a/sources b/sources
index 0ab4ba3..cd6a210 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-b6ba60afd0a5842156e3dc9ea949e93a 94664ddd46a6.tar.bz2
+SHA512 (suds-0.8.4.tar.gz) = 79be88de3e76550fa3c7ab15b240bee2c416ccf4ec27d5305f6ccc736e77a2d32f18a71411ab7a0006efaaf416ad2a84e896ee84954d837ac1e3db4ae870528d