-
Notifications
You must be signed in to change notification settings - Fork 12
Testsuite driven py3 #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
25326e7
to
ec9d4ea
Compare
Commit "fix xmlunwrap and its test to align with the use of bytes" raises a question, whether we don't want, rather, to fix the |
ec9d4ea
to
92b2913
Compare
Commit "switch from ConfigParser to configparser" raises a problem with the My opinion is, we should change the Accessor API to add a Too bad by parametrization of the tests make it harder to mark just the single failing case as |
92b2913
to
c41e019
Compare
Adding the |
Yes we could have a separate PR, but this is still part of the 2-to-3 conversion, and requires to push "switch from ConfigParser to configparser" as is, including the workaround for the issue - or just acknowledge that the 2-to-3 work is known not to be complete at this stage and not include the hackish commit, waiting for API refactor. Similarly for the |
503296c
to
c973ed2
Compare
Use of `unicode` needed to be immediately handled, but a few checks relying on `str` could become insufficient in python2 with the larger usage of unicode strings. Signed-off-by: Yann Dirson <[email protected]>
…conversion Signed-off-by: Yann Dirson <[email protected]>
…s to open() as ths is considered best practice. (cherry picked from cpython commit 6cef076ba5edbfa42239924951d8acbb087b3b19) Signed-off-by: Yann Dirson <[email protected]>
…fication Signed-off-by: Yann Dirson <[email protected]>
…ated Signed-off-by: Yann Dirson <[email protected]>
Running tests on python3 did reveal some of them. Signed-off-by: Yann Dirson <[email protected]>
Signed-off-by: Yann Dirson <[email protected]>
There is no guaranty about ordering of dict elements, and tests compare results derived from enumerating a dict element. We could have used an OrderedDict to store the formulae and get a predictible output order, but just considering the output as a set seems better. Only applying this to rules expected to hold more than one element. Signed-off-by: Yann Dirson <[email protected]>
Caught by extended test. Signed-off-by: Yann Dirson <[email protected]>
This goes away in python3. Signed-off-by: Yann Dirson <[email protected]>
FIXME: I'm quite unsure why xcp.xmlunwrap would want to use bytes and not unicode strings, but the encode/decode calls make it quite clear it wants to work with bytes. That makes the API painful to use in python3.
hashlib came with python 2.5, and old md5 module disappears in 3.0 Signed-off-by: Yann Dirson <[email protected]>
This is supposed to be just a module renaming to conform to PEP8, see https://docs.python.org/3/whatsnew/3.0.html#library-changes The SafeConfigParser class has been renamed to ConfigParser in Python 3.2, and backported as addon package. The `readfp` method now triggers a deprecation warning to replace it with `read_file`. FIXME: With python3 some Accessor implementations (e.g. FileAccessor) provide a text stream for repository config (and with python2 all implementations), while others (e.g. HTTPAccessor) provide a binary stream. But on python3 ConfigParser will bomb out if given a binary stream, so use a TextIOWrapper to access the config. This is a hack, which cannot be used when it is binary data which has to be read (see later commits), so I don't consider this commit to be correct in that respect.
Testing several accessor classes causes code duplication, which can be avoided with help from the `parametrized` package (unfortunately, `pytest` support cannot be used together with `unittest`). Not a big deal right now, but starts becoming painful when adding new tests or testing other Accessor classes. Signed-off-by: Yann Dirson <[email protected]>
This test uses the same kind of I/O (file copy) that prepare_host_upgrade.py does. FIXME: the copy cannot proceed this way in python3
This works properly for the http case, but FileAccessor provides us with a text fileobj handle, and `read()` gets a UTF-8 decoding error. FIXME: Accessor ctor requires a `mode` argument
Signed-off-by: Yann Dirson <[email protected]>
Signed-off-by: Yann Dirson <[email protected]>
Reported under python3 for members created on-the-fly in `setUp()` Signed-off-by: Yann Dirson <[email protected]>
With python3, pylint complains about `else: raise()` constructs. This rework avoids them and reduces cyclomatic complexity by using the error-out-first idiom. Signed-off-by: Yann Dirson <[email protected]>
diff-cover defaults to origin/main in new version, it seems. Signed-off-by: Yann Dirson <[email protected]>
c973ed2
to
09ba68a
Compare
This PR has been used as the basis of #27 which as been merged to master now, closing as done! |
…/CP-41819-pip-pyproject-isort CP-41819: Start py3 migration with config for isort and apply isort
Last commits for full python3 compatibility