Upgrade to python 3.6
Categories
(Webtools Graveyard :: Pontoon, enhancement, P3)
Tracking
(Not tracked)
People
(Reporter: emin, Assigned: jotes)
References
Details
Attachments
(1 file)
| Reporter | ||
Updated•8 years ago
|
Comment 1•8 years ago
|
||
Comment 2•8 years ago
|
||
Comment 3•8 years ago
|
||
Updated•8 years ago
|
| Reporter | ||
Comment 4•8 years ago
|
||
| Reporter | ||
Comment 5•8 years ago
|
||
Comment 6•6 years ago
|
||
| Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Comment 7•6 years ago
|
||
Comment 8•6 years ago
|
||
| Assignee | ||
Comment 9•6 years ago
|
||
:mathjazz
Hey,
Sorry, I got stuck for a month because of things related to my family and shrinking time resources (AWS exams and so on).
I saw a memo on the Pontoon Call about OKRs for Q4.
Unfortunately, the whole migration is blocked by the failing unit-tests. There's a lot of them.
One approach that comes to my mind group them by type (or per file?) and create a separate bug per group (to keep PR as small as possible).
Is that okay with you? I'll definitely need some help with fixes.
In order to help you make a decision, I've prepared a small analysis of the current state of things:
There are 21 types of failures/errors that occur during a test-run on Python 3.
Failures/errors sorted by number of occurrences:
- 118 times - TypeError: object of type 'map' has no len()
- 53 times - django.db.utils.DataError: invalid regular expression: quantifier operand invalid
- 14 times - TypeError: can only concatenate list (not "dict_values") to list
- 11 times - django.http.request.RawPostDataException: You cannot access body after reading from request's data stream
- 7 times - TypeError: 'dict_values' object is not subscriptable
- 5 times - TypeError: a bytes-like object is required, not 'str'
- 4 times - AttributeError: 'bytes' object has no attribute 'traceback'
- 3 times - TypeError: 'filter' object is not subscriptable
- 3 times - TypeError: '>=' not supported between instances of 'MagicMock' and 'int'
- 3 times - assert b'Bad Request: Request must be AJAX' == 'Bad Request: Request must be AJAX' + where b'Bad Request: Request must be AJAX' = <HttpResponseBadRequest status_code=400, "text/html; charset=utf-8">.content
- 2 times - TypeError: 'odict_values' object is not subscriptable
- 2 times - KeyError: 'has_next'
- 1 times - AssertionError: DoesNotExist not raised
- 1 times - TypeError: argument of type 'ResourceQuerySet' is not iterable
- 1 times - AssertionError: assert 'p' == 'cl' - p + cl
- 1 times - AssertionError: assert odict_keys(['...a', 'search']) == ['tag', 'type'...ta', 'search'] Use -v to get the full diff
- 1 times - ValueError: must have exactly one of create/read/write/append mode
- 1 times - TypeError: 'odict_items' object is not subscriptable
- 1 times - AssertionError: assert '^(?s:.)\Z' == '^.$' - ^(?s:.)\Z + ^.$
- 1 times - pontoon.base.models.DoesNotExist: Translation matching query does not exist.
- 1 times - TypeError: sequence item 0: expected str instance, bytes found
Detailed analysis of them per file: https://gist.github.com/jotes/49c64b360ec29ee26efc6455a11fb853
There's a chance that some bigger problems/exceptions are hidden, but I don't think thats a blocker right now.
Comment 10•6 years ago
|
||
:jotes, thanks for the analysis - this is very helpful.
I've filed bug 1585251 to track the unit test work. Later of we can file dependencies if needed, or simply reference that bug in commits.
Updated•6 years ago
|
Comment 11•5 years ago
|
||
Thanks to the great work of jotes, then contributions by Pike, Matjaz and myself, this is now done. :-) Thanks everyone!
Updated•4 years ago
|
Description
•