diff --git a/94664ddd46a6.tar.bz2 b/94664ddd46a6.tar.bz2 deleted file mode 100644 index de50bf2..0000000 Binary files a/94664ddd46a6.tar.bz2 and /dev/null differ 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/port-to-pytest4.patch b/port-to-pytest4.patch new file mode 100644 index 0000000..ee7a1f8 --- /dev/null +++ b/port-to-pytest4.patch @@ -0,0 +1,157 @@ +From 0f9fc8baf101e52ce14869e97b1c05b3bd9d1fbf Mon Sep 17 00:00:00 2001 +From: maminjie +Date: Fri, 8 Jan 2021 11:27:17 +0800 +Subject: [PATCH] port to pytest4 + +--- + setup.cfg | 2 +- + tests/test_argument_parser.py | 4 ++-- + tests/test_input_parameters.py | 11 ++++++----- + tests/test_request_construction.py | 9 ++++++--- + tests/test_sax_encoder.py | 4 ++-- + tests/testutils/indirect_parametrize.py | 12 ++++-------- + 6 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/setup.cfg b/setup.cfg +index 6e247b5..dee95fb 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -94,7 +94,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 52048cd..036bb4b 100644 +--- a/tests/test_request_construction.py ++++ b/tests/test_request_construction.py +@@ -93,9 +93,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} +-- +2.23.0 + diff --git a/python-suds2.spec b/python-suds2.spec index ff644c4..83fc486 100644 --- a/python-suds2.spec +++ b/python-suds2.spec @@ -1,12 +1,14 @@ +%global srcname suds + Name: python-suds2 -Version: 0.7 -Release: 4 +Version: 0.7.0 +Release: 5 Summary: A python SOAP client License: LGPLv3+ -URL: https://bitbucket.org/jurko/suds -Source0: https://bitbucket.org/jurko/suds/get/94664ddd46a6.tar.bz2 -Patch0: fix_http_test.patch +URL: https://github.com/suds-community/suds +Source0: https://github.com/suds-community/suds/archive/v%{version}/%{srcname}-%{version}.tar.gz Patch1: fix_test_transport.patch +Patch2: port-to-pytest4.patch BuildArch: noarch Provides: python-suds = %{version}-%{release} Obsoletes: python-suds < %{version}-%{release} @@ -27,34 +29,26 @@ Obsoletes: python3-suds < %{version}-%{release} for Python licensed under LGPL. %prep -%setup -c -q -mv jurko-suds-94664ddd46a6 python3 -cd python3 -%patch0 -p1 -%patch1 -p1 -cd - +%autosetup -n %{srcname}-%{version} -p1 %build -cd python3 %py3_build -cd - %install -cd python3 %py3_install -cd - %check -cd python3 %{__python3} setup.py test -cd - %files -n python3-suds2 -%doc python3/README.rst -%license python3/LICENSE.txt +%doc README.rst +%license LICENSE.txt %{python3_sitelib}/* %changelog +* Fri Jan 08 2021 maminjie - 0.7.0-5 +- update source and port to pytest4 + * Wed Jul 8 2020 zhanghua - 0.7-4 - change Name to python-suds2 and remove Subpackage python2-suds diff --git a/python-suds2.yaml b/python-suds2.yaml index 4204728..98f1999 100644 --- a/python-suds2.yaml +++ b/python-suds2.yaml @@ -1,4 +1,4 @@ -version_control: hg -src_repo: https://bitbucket.org/jurko/suds -tag_pattern: ^v -seperator: . +version_control: github +src_repo: suds-community/suds +tag_prefix: "^v" +separator: "." diff --git a/suds-0.7.0.tar.gz b/suds-0.7.0.tar.gz new file mode 100644 index 0000000..9d4371c Binary files /dev/null and b/suds-0.7.0.tar.gz differ