Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@
/lib
/build
.Python
.tox
30 changes: 30 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
dist: trusty
sudo: false
language: python
cache: pip
matrix:
include:
- python: '2.7'
env: DJANGO=django18
- python: '2.7'
env: DJANGO=django110
- python: '2.7'
env: DJANGO=django111
- python: '3.2'
env: DJANGO=django18
- python: '3.3'
env: DJANGO=django18
- python: '3.4'
env: DJANGO=django110
- python: '3.4'
env: DJANGO=django111
- python: '3.5'
env: DJANGO=django110
- python: '3.5'
env: DJANGO=django111
- python: '3.6'
env: DJANGO=django111
install:
- pip install tox
script:
- tox -e py${TRAVIS_PYTHON_VERSION//.}-${DJANGO} -- -v 2
16 changes: 0 additions & 16 deletions examples/protected_downloads/download/tests.py

This file was deleted.

Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
'django.contrib.auth.middleware.AuthenticationMiddleware',
)

ROOT_URLCONF = 'protected_downloads.urls'
ROOT_URLCONF = 'example.urls'

TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates'),
Expand Down
16 changes: 6 additions & 10 deletions examples/protected_downloads/manage.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
#!/usr/bin/env python
import os
import sys

from __future__ import absolute_import
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings")

from django.core.management import execute_manager
try:
from . import settings # Assumed to be in the same directory.
except ImportError:
import sys
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
sys.exit(1)
from django.core.management import execute_from_command_line

if __name__ == "__main__":
execute_manager(settings)
execute_from_command_line(sys.argv)
1 change: 0 additions & 1 deletion examples/protected_downloads/sendfile

This file was deleted.

6 changes: 4 additions & 2 deletions sendfile/tests.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# coding=utf-8

from __future__ import unicode_literals

from django.conf import settings
from django.test import TestCase
from django.http import HttpResponse, Http404, HttpRequest
Expand Down Expand Up @@ -107,7 +109,7 @@ def test_correct_file_in_xsendfile_header(self):
self.assertEqual(filepath, response['X-Sendfile'])

def test_xsendfile_header_containing_unicode(self):
filepath = self.ensure_file(u'péter_là_gueule.txt')
filepath = self.ensure_file('péter_là_gueule.txt')
response = real_sendfile(HttpRequest(), filepath)
self.assertTrue(response is not None)
self.assertEqual(smart_str(filepath), response['X-Sendfile'])
Expand All @@ -129,7 +131,7 @@ def test_correct_url_in_xaccelredirect_header(self):
self.assertEqual('/private/readme.txt', response['X-Accel-Redirect'])

def test_xaccelredirect_header_containing_unicode(self):
filepath = self.ensure_file(u'péter_là_gueule.txt')
filepath = self.ensure_file('péter_là_gueule.txt')
response = real_sendfile(HttpRequest(), filepath)
self.assertTrue(response is not None)
self.assertEqual(u'/private/péter_là_gueule.txt'.encode('utf-8'), unquote(response['X-Accel-Redirect']))
Expand Down
3 changes: 3 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[wheel]
# create "py2.py3-none-any.whl" package
universal = 1
22 changes: 12 additions & 10 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
from distutils.core import setup

try:
from distutils.command.build_py import build_py_2to3 as build_py
except ImportError:
from distutils.command.build_py import build_py
from setuptools import setup


version = __import__('sendfile').__version__
Expand All @@ -19,8 +14,8 @@
url='https://github.com/johnsensible/django-sendfile',
license='BSD',

requires=['Django (>=1.3)'],
install_requires=['Django>=1.3'],
requires=['Django (>=1.8)'],
install_requires=['Django>=1.8'],

packages=['sendfile', 'sendfile.backends'],
package_dir={
Expand All @@ -36,12 +31,19 @@
'Development Status :: 4 - Beta',
'Environment :: Web Environment',
'Framework :: Django',
'Framework :: Django :: 1.8',
'Framework :: Django :: 1.10',
'Framework :: Django :: 1.11',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Topic :: Software Development :: Libraries :: Python Modules',
],

cmdclass={'build_py': build_py},
)
20 changes: 20 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Tox (http://codespeak.net/~hpk/tox/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
minversion = 2.2
envlist =
py{27,32,33,34}-django18
py{27,34,35}-django110
py{27,34,35,36}-django111
skip_missing_interpreters = True

[testenv]
changedir = examples/protected_downloads
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In #62 I've fixed the tests so they can be run at the project top level. If that lands, I don't think this changedir will be required.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, I just picked up from #28, hence the status of this branch.

commands = python manage.py test sendfile
deps =
django18: django >=1.8,<1.9
django110: django >=1.10,<1.11
django111: django >=1.11,<2