zopefoundation / zodbpickle

Fork of Python's pickle module to work with ZODB
Other
17 stars 15 forks source link

2.3: python 2.x syntac in `zodbpickle` code #69

Closed kloczek closed 2 years ago

kloczek commented 2 years ago

Looks like in latest version still it is possible to find python 2.x syntax. This blocks generate python 3.x pcode.

+ /usr/bin/python3 -sBm compileall2 -f -j48 -o 0 -o 1 -o 2 -s /home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64 -p / /home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages /home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib/python3.8/site-packages
Listing '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages'...
Listing '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/__init__.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/fastpickle.py'...
Listing '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/pickle_3.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/pickle.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/pickle_2.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/pickletools_2.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/pickletools_3.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/slowpickle.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/__init__.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/pickletester_2.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/pickletester_3.py'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/test_pickle.py'...
Listing '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle-2.3.dist-info'...
Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/test_pickle_2.py'...
***   File "/usr/lib64/python3.8/site-packages/zodbpickle/tests/pickletester_2.py", line 433
    x = [0, 1L, 2.0, 3.0+0j]
             ^
SyntaxError: invalid syntax

Compiling '/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages/zodbpickle/tests/test_pickle_3.py'...
***   File "/usr/lib64/python3.8/site-packages/zodbpickle/pickle_2.py", line 882
    except _Stop, stopinst:
                ^
SyntaxError: invalid syntax

***   File "/usr/lib64/python3.8/site-packages/zodbpickle/pickletools_2.py", line 1803
    print "skipping %r: it doesn't look like an opcode name" % name
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("skipping %r: it doesn't look like an opcode name" % name)?
kloczek commented 2 years ago

Looks like there are more python 2.x leftovers

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-zodbpickle-2.3-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
==================================================================== test session starts =====================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/zodbpickle-2.3
collected 283 items / 1 error

=========================================================================== ERRORS ===========================================================================
___________________________________________________ ERROR collecting src/zodbpickle/tests/test_pickle_2.py ___________________________________________________
ImportError while importing test module '/home/tkloczko/rpmbuild/BUILD/zodbpickle-2.3/src/zodbpickle/tests/test_pickle_2.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib64/python3.8/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
src/zodbpickle/tests/test_pickle_2.py:6: in <module>
    from .pickletester_2 import (AbstractPickleTests,
src/zodbpickle/tests/pickletester_2.py:22: in <module>
    from test.test_support import TestFailed, have_unicode, TESTFN
E   ImportError: cannot import name 'TestFailed' from 'test.test_support' (/usr/lib64/python3.8/test/test_support.py)
================================================================== short test summary info ===================================================================
ERROR src/zodbpickle/tests/test_pickle_2.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
====================================================================== 1 error in 0.24s ======================================================================
icemac commented 2 years ago

@kloczek This package is still Python 2 compatible and ships with Python-2-only code. This is never has been a problem when used whit the right tooling.

As for nearly all other zopefoundation packages, you have to run the tests using zope.testrunner.

Knowing and loving a single tool (pytest in your case) does not mean you can use it everywhere successfully and not everyone is able and willing to adopt your beloved tool for each and every project.

⚠️ Please stop creating issues regarding running the tests of a zopefoundation package using pytest. This does not work and never will. – These issues are not helpful at all, but they drain maintenance time needed to fix actual issues.