Skip to content
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

Django 1.10 support #87

Closed
adamchainz opened this issue Oct 3, 2016 · 2 comments
Closed

Django 1.10 support #87

adamchainz opened this issue Oct 3, 2016 · 2 comments

Comments

@adamchainz
Copy link
Contributor

I'm trying to upgrade to Django 1.10 and django-assets is one of the libraries I have that doesn't advertise support for it. I tried running its tests on top of #86 with the following patch, but got the below failures. Test compatibility here seems to be around the settings used, which need updating to use TEMPLATES, but also maybe some stuff needs doing in webassets too to fix the failures seen in #86?

patch:

diff --git a/tox.ini b/tox.ini
index 5fc998d..0685dde 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,7 @@
 [tox]
-envlist = django18-{py27,py33,py34,pypy}, django19-{py27,py34,py35}
+envlist = django18-{py27,py33,py34,pypy},
+          django19-{py27,py34,py35},
+          django110-{py27,py34,py35}


 [testenv]
@@ -12,3 +14,4 @@ deps =
     https://github.com/miracle2k/webassets/archive/master.tar.gz
     django18: Django>=1.8,<1.9
     django19: Django>=1.9,<1.10
+    django110: Django>=1.10,<1.11

failures:

django110-py35 create: /Users/adamj/Documents/Projects/django-assets/.tox/django110-py35
django110-py35 installdeps: nose==1.3.7, ipdb>=0.8.0, https://github.com/miracle2k/webassets/archive/master.tar.gz, Django>=1.10,<1.11
django110-py35 inst: /Users/adamj/Documents/Projects/django-assets/.tox/dist/django-assets-0.12.zip
django110-py35 installed: appnope==0.1.0,decorator==4.0.10,Django==1.10.2,django-assets==0.12,ipdb==0.10.1,ipython==5.1.0,ipython-genutils==0.1.0,nose==1.3.7,pexpect==4.2.1,pickleshare==0.7.4,prompt-toolkit==1.0.7,ptyprocess==0.5.1,Pygments==2.1.3,simplegeneric==0.8.1,six==1.10.0,traitlets==4.3.1,wcwidth==0.1.7,webassets==0.12.0
django110-py35 runtests: PYTHONHASHSEED='383892742'
django110-py35 runtests: commands[0] | nosetests
..EFF.......EEEEEEE
======================================================================
ERROR: tests.test_django.TestFilter.test_template
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 312, in test_template
    filters=get_filter('template', context={'num': 23232323}),
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/bundle.py", line 663, in build
    disable_cache=disable_cache))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/bundle.py", line 600, in _build
    force, disable_cache=disable_cache, extra_filters=extra_filters)
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/bundle.py", line 524, in _merge_and_apply
    kwargs=item_data)
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/merge.py", line 276, in apply
    return self._wrap_cache(key, func)
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/merge.py", line 218, in _wrap_cache
    content = func().getvalue()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/webassets/merge.py", line 251, in func
    getattr(filter, type)(data, out, **kwargs_final)
  File "/Users/adamj/Documents/Projects/django-assets/django_assets/filter.py", line 24, in input
    t = Template(_in.read(), origin='django-assets', name=source_path)
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: tests.test_django.TestTemplateTag.test_debug_option
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 148, in test_debug_option
    self.render_template('"file", debug="true"')
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: Ensure the tag correcly spits out the urls the bundle returns.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 164, in test_output_urls
    assert self.render_template('"file1" "file2" "file3"') == 'foo;bar;'
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: tests.test_django.TestTemplateTag.test_reference_bundles
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 132, in test_reference_bundles
    self.render_template('"foo_bundle", "bar_bundle"')
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: tests.test_django.TestTemplateTag.test_reference_files
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 136, in test_reference_files
    self.render_template('"file1", "file2", "file3"')
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: tests.test_django.TestTemplateTag.test_reference_mixed
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 140, in test_reference_mixed
    self.render_template('"foo_bundle", "file2", "file3"')
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: Using commas is optional.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 158, in test_with_no_commas
    self.render_template('"file1" "file2" "file3"')
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
ERROR: tests.test_django.TestTemplateTag.test_with_vars
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 144, in test_with_vars
    self.render_template('var1 var2', {'var1': self.foo_bundle, 'var2': 'a_file'})
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 129, in render_template
    return Template('{% load assets %}{% assets '+args+' %}{{ ASSET_URL }};{% endassets %}').render(Context(ctx))
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/base.py", line 184, in __init__
    engine = Engine.get_default()
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/django/template/engine.py", line 81, in get_default
    "No DjangoTemplates backend is configured.")
django.core.exceptions.ImproperlyConfigured: No DjangoTemplates backend is configured.

======================================================================
FAIL: tests.test_django.TestLoader.test
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 192, in test
    assert len(bundles) == 1
AssertionError

======================================================================
FAIL: tests.test_django.TestLoader.test_cached_loader
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/adamj/Documents/Projects/django-assets/.tox/django110-py35/lib/python3.5/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/Users/adamj/Documents/Projects/django-assets/tests/test_django.py", line 202, in test_cached_loader
    assert len(bundles) == 1
AssertionError

----------------------------------------------------------------------
Ran 19 tests in 0.263s
@uranusjr
Copy link

Django 1.10 removes the old-style template configuration in favour of the TEMPLATES settings. Now you need to either use the django.templates.Engine API, or explicitly configure a Django templates backend.

Modify tests/__init__.py and change the settings.configure(...) line like this

settings.configure(
    INSTALLED_APPS=['django_assets', 'django.contrib.staticfiles'],
    TEMPLATES=[{'BACKEND': 'django.template.backends.django.DjangoTemplates'}],
)

and you’re good to go.

@miracle2k
Copy link
Owner

Fixed in trunk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants