Use of xrange in custom lookups code not valid in Python 3; "__in list too long" case not tested
|Reported by:||Carl Meyer||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||master|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
There is a use of 'xrange' in the
In lookup class in
django/db/models/lookups.py, within the "list too long for db backend" case. "xrange" is not present on Python 3, so this code will fail there.
The fact that tests are passing on both Python 2 and 3 suggests that this code branch is untested, and I confirmed by inserting a
pdb.set_trace() at that point and running the full test suite. That's a sizable code branch; it should be tested.