Bug 1708135

Summary: python-tornado fails to build with Python 3.8
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-tornadoAssignee: Python SIG <python-sig>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: aurelien, lbalhar, mhroncok, orion, pviktori, python-sig, tomspur
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-16 13:44:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1686977    
Attachments:
Description Flags
Full log from Copr none

Description Miro Hrončok 2019-05-09 08:29:31 UTC
Created attachment 1566033 [details]
Full log from Copr

python-tornado 5.1.1-1.fc31 fails to build with Python 3.8.0a4.
It seems to be treating a DeprecationWarning as error. 

+ /usr/bin/python3 -m tornado.test.runtests --verbose
Traceback (most recent call last):
  File "/usr/lib64/python3.8/runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib64/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/test/runtests.py", line 219, in <module>
    main()
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/test/runtests.py", line 204, in main
    tornado.testing.main(**kwargs)
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/testing.py", line 720, in main
    unittest.main(defaultTest="all", argv=argv, **kwargs)
  File "/usr/lib64/python3.8/unittest/main.py", line 100, in __init__
    self.parseArgs(argv)
  File "/usr/lib64/python3.8/unittest/main.py", line 147, in parseArgs
    self.createTests()
  File "/usr/lib64/python3.8/unittest/main.py", line 158, in createTests
    self.test = self.testLoader.loadTestsFromNames(self.testNames,
  File "/usr/lib64/python3.8/unittest/loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib64/python3.8/unittest/loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib64/python3.8/unittest/loader.py", line 205, in loadTestsFromName
    test = obj()
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/test/runtests.py", line 65, in all
    return unittest.defaultTestLoader.loadTestsFromNames(TEST_MODULES)
  File "/usr/lib64/python3.8/unittest/loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib64/python3.8/unittest/loader.py", line 220, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib64/python3.8/unittest/loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/test/auth_test.py", line 12, in <module>
    from tornado.auth import (
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/auth.py", line 144, in <module>
    class OpenIdMixin(object):
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/auth.py", line 152, in OpenIdMixin
    def authenticate_redirect(self, callback_uri=None,
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/concurrent.py", line 529, in _non_deprecated_return_future
    replacer = ArgReplacer(f, 'callback')
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/util.py", line 397, in __init__
    self.arg_pos = self._getargnames(func).index(name)
  File "/builddir/build/BUILD/tornado-5.1.1/tornado/util.py", line 405, in _getargnames
    return getargspec(func).args
  File "/usr/lib64/python3.8/inspect.py", line 1114, in getfullargspec
    warnings.warn("Use inspect.signature() instead of inspect.getfullargspec()",
DeprecationWarning: Use inspect.signature() instead of inspect.getfullargspec()

Full log attached.

Comment 1 Petr Viktorin (pviktori) 2019-05-15 15:35:38 UTC
Upstream PR: https://github.com/tornadoweb/tornado/pull/2662

Comment 2 Lumír Balhar 2019-05-16 13:33:10 UTC
Downstream PR which just disables turning deprecation warning in tornado module into exceptions.

https://src.fedoraproject.org/rpms/python-tornado/pull-request/5

Comment 3 Miro Hrončok 2019-05-16 13:44:38 UTC
Merged Lumír's PR. Thank You both!