[Python-modules-team] Bug#802839: django-celery: python 3 tests not invoked and break

Brian May bam at debian.org
Sat Oct 24 02:11:25 UTC 2015


Brian May <bam at debian.org> writes:

> ======================================================================
> FAIL: test_discovery_with_broken (djcelery.tests.test_discovery.TestDiscovery)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/home/brian/tree/debian/python-modules/django-celery/tests/../djcelery/tests/test_discovery.py", line 45, in test_discovery_with_broken
>     self.assertEqual(log, [])
> AssertionError: Lists differ: [<warnings.WarningMessage object at 0x7f2b03474c88>] != []
>
> First list contains 1 additional elements.
> First extra element 0:
> {message : ResourceWarning("unclosed file <_io.TextIOWrapper name='/home/brian/tree/debian/python-modules/django-celery/tests/someapp/tasks.py' mode='r' encoding='utf-8'>",), category : 'ResourceWarning', filename : '/home/brian/tree/debian/python-modules/django-celery/tests/../djcelery/loaders.py', lineno : 204, line : None}
>
> - [<warnings.WarningMessage object at 0x7f2b03474c88>]
> + []
>
> ----------------------------------------------------------------------
> Ran 66 tests in 0.340s
>
> FAILED (errors=2, failures=1)

That includes a debug message I put in. Oops. Showing the warning object
that caused the problem.

It seems that Python3 is generating an unexpected error ("unclosed
file") that is upsetting the test because it expects 0 warnings.

Any ideas how to fix this? It doesn't appear to be this project that is
producing the warning, maybe that comes from Django.

Or should I just remove the Assert?

The code in question that appears to be producing the warning:

def autodiscover():
    """Include tasks for all applications in ``INSTALLED_APPS``."""
    global _RACE_PROTECTION

    if _RACE_PROTECTION:
        return
    _RACE_PROTECTION = True
    try:
        if django.VERSION < (1, 7):
            return filter(None, [find_related_module(app, 'tasks')
                                 for app in settings.INSTALLED_APPS])
        else:
            from django.apps import apps
            return filter(None, [find_related_module(app.name, 'tasks')
                                 for app in apps.get_app_configs()])
    finally:
        _RACE_PROTECTION = False


This is in git, in the expected python-modules location.
-- 
Brian May <bam at debian.org>



More information about the Python-modules-team mailing list