carltongibson / django-filter

A generic system for filtering Django QuerySets based on user selections
https://django-filter.readthedocs.io/en/main/
Other
4.41k stars 766 forks source link

Fixes for Django 5.0. #1606

Closed carltongibson closed 1 year ago

carltongibson commented 1 year ago

Refs #1605.

b035bf278ac82254022b639a0a1b08ae66a445a3 is needed to surface the ChoiceIterator issue, otherwise we hit apps not loaded setting up the test run.

``` Found 77 test(s). Creating test database for alias 'default'... Traceback (most recent call last): File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/base.py", line 106, in wrapper res = handle_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/commands/migrate.py", line 107, in handle for app_config in apps.get_app_configs(): ^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/apps/registry.py", line 147, in get_app_configs self.check_apps_ready() File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/apps/registry.py", line 138, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 215, in _add_installed_apps_translations app_configs = reversed(apps.get_app_configs()) ^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/apps/registry.py", line 147, in get_app_configs self.check_apps_ready() File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/apps/registry.py", line 138, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/carlton/Projects/Django/django-filter/runtests.py", line 15, in runtests() File "/Users/carlton/Projects/Django/django-filter/runtests.py", line 11, in runtests execute_from_command_line(argv) File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv super().run_from_argv(argv) File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, **cmd_options) File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/commands/test.py", line 68, in handle failures = test_runner.run_tests(test_labels) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/test/runner.py", line 1056, in run_tests old_config = self.setup_databases( ^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/test/runner.py", line 955, in setup_databases return _setup_databases( ^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/test/utils.py", line 203, in setup_databases connection.creation.create_test_db( File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/db/backends/base/creation.py", line 78, in create_test_db call_command( File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/__init__.py", line 194, in call_command return command.execute(*args, **defaults) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/core/management/base.py", line 109, in wrapper translation.activate(saved_locale) File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/__init__.py", line 181, in activate return _trans.activate(language) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 303, in activate _active.value = translation(language) ^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 292, in translation _translations[language] = DjangoTranslation(language) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 169, in __init__ self._add_installed_apps_translations() File "/Users/carlton/Projects/Django/django-filter/.tox/py311-latest/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 217, in _add_installed_apps_translations raise AppRegistryNotReady( django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time. py311-latest: exit 1 (0.35 seconds) /Users/carlton/Projects/Django/django-filter> coverage run --parallel-mode --source django_filters ./runtests.py --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner pid=84393 ```

(@felixxm don't suppose you know when this snuck in do you? Ta! 😊)

codecov-commenter commented 1 year ago

Codecov Report

Merging #1606 (f279fb7) into main (e5fc05d) will increase coverage by 0.01%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1606      +/-   ##
==========================================
+ Coverage   98.58%   98.59%   +0.01%     
==========================================
  Files          15       15              
  Lines        1271     1285      +14     
==========================================
+ Hits         1253     1267      +14     
  Misses         18       18              
Files Changed Coverage Ξ”
django_filters/fields.py 100.00% <100.00%> (ΓΈ)
carltongibson commented 1 year ago

Hey @ngnpope πŸ‘‹ Don't suppose I could ask for your opinion here could I please? 🎁

carltongibson commented 1 year ago

https://github.com/carltongibson/django-filter/commit/b035bf278ac82254022b639a0a1b08ae66a445a3 is needed to surface the ChoiceIterator issue, otherwise we hit apps not loaded setting up the test run.

This only comes up in tox. (Grrr.) Calling django.setup() is unobjectionable, and probably should have always been there… πŸ€”, so unless someone wants to input I'm just going to leave it.

ngnpope commented 1 year ago

Hey @ngnpope πŸ‘‹ Don't suppose I could ask for your opinion here could I please? 🎁

Will take a look... πŸ‘€

ngnpope commented 1 year ago

See #1607 for an alternative πŸ™‚

carltongibson commented 1 year ago

Thanks @ngnpope πŸ¦Έβ€β™€οΈ Looks good. I'll give it a proper read over the weekend. 🎁

carltongibson commented 1 year ago

Closing in favour of #1607