diff --git a/.travis.yml b/.travis.yml index ea1ff45..f17fb0a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: python python: -# - "2.6" -# - "2.7" -# - "3.2" + - "2.6" + - "2.7" + - "3.2" - "3.3" before_install: - export PIP_USE_MIRRORS=true @@ -11,24 +11,24 @@ before_install: - sudo apt-get install csstidy libxml2-dev libxslt-dev install: - pip install -e . -# - if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install unittest2 --use-mirrors; fi -# - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install unittest2 --use-mirrors; fi -# - if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install BeautifulSoup --use-mirrors; fi -# - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install BeautifulSoup --use-mirrors; fi -# - if [[ $TRAVIS_PYTHON_VERSION == 3.2 ]]; then pip install BeautifulSoup4 --use-mirrors; fi + - if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install unittest2 --use-mirrors; fi + - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install unittest2 --use-mirrors; fi + - if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install BeautifulSoup --use-mirrors; fi + - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install BeautifulSoup --use-mirrors; fi + - if [[ $TRAVIS_PYTHON_VERSION == 3.2 ]]; then pip install BeautifulSoup4 --use-mirrors; fi - if [[ $TRAVIS_PYTHON_VERSION == 3.3 ]]; then pip install BeautifulSoup4 --use-mirrors; fi - pip install -r requirements/tests.txt Django==$DJANGO script: - make test env: -# - DJANGO=1.4.5 + - DJANGO=1.4.5 - DJANGO=1.5 -# matrix: -# exclude: -# - python: "3.2" -# env: DJANGO=1.4.5 -# - python: "3.3" -# env: DJANGO=1.4.5 +matrix: + exclude: + - python: "3.2" + env: DJANGO=1.4.5 + - python: "3.3" + env: DJANGO=1.4.5 branches: only: - py3_new diff --git a/compressor/cache.py b/compressor/cache.py index c574338..3f2d07c 100644 --- a/compressor/cache.py +++ b/compressor/cache.py @@ -6,7 +6,7 @@ import time from django.core.cache import get_cache from django.core.files.base import ContentFile -from django.utils.encoding import force_str +from django.utils.encoding import force_text, smart_bytes from django.utils.functional import SimpleLazyObject from django.utils.importlib import import_module @@ -14,28 +14,22 @@ from compressor.conf import settings from compressor.storage import default_storage from compressor.utils import get_mod_func -try: - from django.utils.encoding import force_bytes -except ImportError: - # django < 1.4.2 - from django.utils.encoding import force_str as force_bytes - _cachekey_func = None def get_hexdigest(plaintext, length=None): - digest = hashlib.md5(force_bytes(plaintext)).hexdigest() + digest = hashlib.md5(smart_bytes(plaintext)).hexdigest() if length: return digest[:length] return digest def simple_cachekey(key): - return 'django_compressor.%s' % force_str(key) + return 'django_compressor.%s' % force_text(key) def socket_cachekey(key): - return "django_compressor.%s.%s" % (socket.gethostname(), force_str(key)) + return "django_compressor.%s.%s" % (socket.gethostname(), force_text(key)) def get_cachekey(*args, **kwargs): diff --git a/compressor/tests/test_base.py b/compressor/tests/test_base.py index f0c27ed..33616ee 100644 --- a/compressor/tests/test_base.py +++ b/compressor/tests/test_base.py @@ -2,8 +2,12 @@ from __future__ import with_statement, unicode_literals import os import re -from bs4 import BeautifulSoup +try: + from bs4 import BeautifulSoup +except ImportError: + from BeautifulSoup import BeautifulSoup +from django.utils import six from django.core.cache.backends import locmem from django.test import TestCase @@ -16,7 +20,10 @@ from compressor.exceptions import FilterDoesNotExist def make_soup(markup): # we use html.parser instead of lxml because it doesn't work on python 3.3 - return BeautifulSoup(markup, 'html.parser') + if six.PY3: + return BeautifulSoup(markup, 'html.parser') + else: + return BeautifulSoup(markup) def css_tag(href, **kwargs):