python-suds fails to build with Python 3.8.0b1: =================================== FAILURES =================================== _ TestRequest.test_string_representation_with_message[-headers1-for a bitch it's haaaard...] _ self = <test_transport.TestRequest object at 0x7f01a168a670>, url = '' headers = {b'aaa': b'uf-uf'}, message = "for a bitch it's haaaard..." @pytest.mark.parametrize(("url", "headers", "message"), ( ("my URL", {}, ""), ("", {"aaa": "uf-uf"}, "for a bitch it's haaaard..."), ("http://rumple-fif/muka-laka-hiki", {"uno": "eins", "zwei": "due"}, """\ I'm here to kick ass, and chew bubble gum... and I'm all out of gum."""), ("", {}, u("\u0161u\u0107-mu\u0107 pa o\u017Ee\u017Ei.. za 100 " "\u20AC\n\nwith multiple\nlines...")), ("", {}, "\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(): E RuntimeError: dictionary keys changed during iteration tests/test_transport.py:143: RuntimeError _ TestRequest.test_string_representation_with_message[http://rumple-fif/muka-laka-hiki-headers2-I'm here to kick ass,\nand chew bubble gum...\nand I'm all out of gum.] _ self = <test_transport.TestRequest object at 0x7f01a1764c10> url = 'http://rumple-fif/muka-laka-hiki' headers = {b'uno': b'eins', b'zwei': b'due'} message = "I'm here to kick ass,\nand chew bubble gum...\nand I'm all out of gum." @pytest.mark.parametrize(("url", "headers", "message"), ( ("my URL", {}, ""), ("", {"aaa": "uf-uf"}, "for a bitch it's haaaard..."), ("http://rumple-fif/muka-laka-hiki", {"uno": "eins", "zwei": "due"}, """\ I'm here to kick ass, and chew bubble gum... and I'm all out of gum."""), ("", {}, u("\u0161u\u0107-mu\u0107 pa o\u017Ee\u017Ei.. za 100 " "\u20AC\n\nwith multiple\nlines...")), ("", {}, "\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(): E RuntimeError: dictionary keys changed during iteration tests/test_transport.py:143: RuntimeError This is a new thing in 3.8, see https://github.com/python/cpython/pull/12596 A fix is usually to iterate over a copy (unless the code does some magical hacks). Logs: https://copr-be.cloud.fedoraproject.org/results/@python/python3.8/fedora-rawhide-x86_64/00934040-python-suds/
Something like: --- a/tests/test_transport.py Mon Jul 27 11:08:20 2015 +0200 +++ b/tests/test_transport.py Tue Jun 11 09:29:31 2019 +0200 @@ -140,7 +140,7 @@ ("", {}, "\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")
Dangit, I forgot to test 3.8. Thanks.