diff --git a/.travis.yml b/.travis.yml index 99f4106..93fe175 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,28 +2,17 @@ language: python python: - "2.7" + - "3.6" env: matrix: - - TOX_ENV=py27-dj14 - - TOX_ENV=py27-dj15 - - TOX_ENV=py27-dj16 - - TOX_ENV=py27-dj17 - TOX_ENV=py27-dj18 - - TOX_ENV=py33-dj15 - - TOX_ENV=py33-dj16 - - TOX_ENV=py33-dj17 - - TOX_ENV=py33-dj18 - - TOX_ENV=py34-dj15 - - TOX_ENV=py34-dj16 - - TOX_ENV=py34-dj17 - - TOX_ENV=py34-dj18 - - TOX_ENV=pypy-dj14 - - TOX_ENV=pypy-dj15 - - TOX_ENV=pypy-dj16 - - TOX_ENV=pypy-dj17 - - TOX_ENV=pypy-dj18 - - TOX_ENV=py27-cov + - TOX_ENV=py27-dj19 + - TOX_ENV=py27-dj100 + - TOX_ENV=py36-dj18 + - TOX_ENV=py36-dj19 + - TOX_ENV=py36-dj100 + - TOX_ENV=py36-cov install: - pip install tox diff --git a/README.rst b/README.rst index 745a094..e1193ab 100644 --- a/README.rst +++ b/README.rst @@ -136,3 +136,10 @@ This package provide various signals for you to get notification, and do more th :target: https://travis-ci.org/StreetVoice/django-elastic-transcoder .. |Coverage Status| image:: https://coveralls.io/repos/StreetVoice/django-elastic-transcoder/badge.png?branch=master :target: https://coveralls.io/r/StreetVoice/django-elastic-transcoder?branch=master + +Run Tests +----------- + +.. code:: sh + $ pip install -r test_requirements.txt + $ tox \ No newline at end of file diff --git a/dj_elastictranscoder/admin.py b/dj_elastictranscoder/admin.py index c7ad991..c767ec2 100644 --- a/dj_elastictranscoder/admin.py +++ b/dj_elastictranscoder/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import EncodeJob +from dj_elastictranscoder.models import EncodeJob class EncodeJobAdmin(admin.ModelAdmin): list_display = ('id', 'state', 'message') diff --git a/dj_elastictranscoder/migrations/0001_initial.py b/dj_elastictranscoder/migrations/0001_initial.py index db0199f..8b63d7c 100644 --- a/dj_elastictranscoder/migrations/0001_initial.py +++ b/dj_elastictranscoder/migrations/0001_initial.py @@ -16,7 +16,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.CharField(max_length=100, serialize=False, primary_key=True)), ('object_id', models.PositiveIntegerField()), - ('state', models.PositiveIntegerField(default=0, db_index=True, choices=[(0, b'Submitted'), (1, b'Progressing'), (2, b'Error'), (3, b'Warning'), (4, b'Complete')])), + ('state', models.PositiveIntegerField(choices=[(0, 'Submitted'), (1, 'Progressing'), (2, 'Error'), (3, 'Warning'), (4, 'Complete')], db_index=True, default=0)), ('message', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('last_modified', models.DateTimeField(auto_now=True)), diff --git a/dj_elastictranscoder/models.py b/dj_elastictranscoder/models.py index 8422e07..60f0145 100644 --- a/dj_elastictranscoder/models.py +++ b/dj_elastictranscoder/models.py @@ -1,10 +1,7 @@ from django.db import models from django.contrib.contenttypes.models import ContentType -import django -if django.get_version() >= '1.8': - from django.contrib.contenttypes.fields import GenericForeignKey -else: - from django.contrib.contenttypes.generic import GenericForeignKey +from django.contrib.contenttypes.fields import GenericForeignKey + class EncodeJob(models.Model): diff --git a/dj_elastictranscoder/south_migrations/0001_initial.py b/dj_elastictranscoder/south_migrations/0001_initial.py deleted file mode 100644 index 849422f..0000000 --- a/dj_elastictranscoder/south_migrations/0001_initial.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -from south.utils import datetime_utils as datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'EncodeJob' - db.create_table(u'dj_elastictranscoder_encodejob', ( - ('id', self.gf('django.db.models.fields.CharField')(max_length=100, primary_key=True)), - ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])), - ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()), - ('state', self.gf('django.db.models.fields.PositiveIntegerField')(default=0, db_index=True)), - ('message', self.gf('django.db.models.fields.TextField')()), - ('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('last_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal(u'dj_elastictranscoder', ['EncodeJob']) - - - def backwards(self, orm): - # Deleting model 'EncodeJob' - db.delete_table(u'dj_elastictranscoder_encodejob') - - - models = { - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'dj_elastictranscoder.encodejob': { - 'Meta': {'object_name': 'EncodeJob'}, - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'message': ('django.db.models.fields.TextField', [], {}), - 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), - 'state': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}) - } - } - - complete_apps = ['dj_elastictranscoder'] \ No newline at end of file diff --git a/dj_elastictranscoder/south_migrations/__init__.py b/dj_elastictranscoder/south_migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/dj_elastictranscoder/transcoder.py b/dj_elastictranscoder/transcoder.py index 6d77f75..17833ee 100644 --- a/dj_elastictranscoder/transcoder.py +++ b/dj_elastictranscoder/transcoder.py @@ -3,7 +3,7 @@ from django.conf import settings from django.contrib.contenttypes.models import ContentType -from .models import EncodeJob +from dj_elastictranscoder.models import EncodeJob class Transcoder(object): diff --git a/dj_elastictranscoder/urls.py b/dj_elastictranscoder/urls.py index 3b6d4a3..a8ed33c 100644 --- a/dj_elastictranscoder/urls.py +++ b/dj_elastictranscoder/urls.py @@ -1,8 +1,6 @@ -try: - from django.conf.urls import url, patterns -except ImportError: - from django.conf.urls.defaults import url, patterns # Support for Django < 1.4 +from django.conf.urls import url + +from dj_elastictranscoder.views import endpoint as transcoder_endpoint + +urlpatterns = (url(r'^endpoint/$', transcoder_endpoint, name='transcoder_endpoint'),) -urlpatterns = patterns('dj_elastictranscoder.views', - url(r'^endpoint/$', 'endpoint'), -) diff --git a/dj_elastictranscoder/views.py b/dj_elastictranscoder/views.py index 9ff0f51..fd38119 100644 --- a/dj_elastictranscoder/views.py +++ b/dj_elastictranscoder/views.py @@ -4,8 +4,8 @@ from django.views.decorators.csrf import csrf_exempt from django.core.mail import mail_admins -from .models import EncodeJob -from .signals import ( +from dj_elastictranscoder.models import EncodeJob +from dj_elastictranscoder.signals import ( transcode_onprogress, transcode_onerror, transcode_oncomplete diff --git a/setup.py b/setup.py index 13ecc92..8bffd3a 100644 --- a/setup.py +++ b/setup.py @@ -15,9 +15,8 @@ include_package_data=True, zip_safe=False, install_requires=[ - "django >= 1.3, < 1.9", + "django >= 1.8", "boto3 >= 1.1", - "South >= 0.8", ], classifiers=[ "Intended Audience :: Developers", diff --git a/test_requirements.txt b/test_requirements.txt new file mode 100644 index 0000000..b654c22 --- /dev/null +++ b/test_requirements.txt @@ -0,0 +1 @@ +tox \ No newline at end of file diff --git a/testsapp/requirements.txt b/testsapp/requirements.txt index 6513ae3..8670753 100644 --- a/testsapp/requirements.txt +++ b/testsapp/requirements.txt @@ -2,4 +2,3 @@ pytest pytest-django pytest-cov boto -south \ No newline at end of file diff --git a/testsapp/test_job.py b/testsapp/test_job.py index 13dc3b0..70cbe30 100644 --- a/testsapp/test_job.py +++ b/testsapp/test_job.py @@ -13,7 +13,7 @@ transcode_oncomplete ) -from .models import Item +from testsapp.models import Item diff --git a/testsapp/tests_settings.py b/testsapp/tests_settings.py index 3eaaec3..c626b32 100644 --- a/testsapp/tests_settings.py +++ b/testsapp/tests_settings.py @@ -15,5 +15,5 @@ ] SITE_ID = 1 DEBUG = False -ROOT_URLCONF = '' +ROOT_URLCONF = 'dj_elastictranscoder.urls' SECRET_KEY='test' \ No newline at end of file diff --git a/tox.ini b/tox.ini index d77ba72..5a0da9b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,8 @@ [tox] -# for py 3.x we are using only django 1.6.x as 1.5.x had only "experimental py3 support" envlist = - py{27,py}-dj{14,15,16,17,18}, - py{33,34}-dj{15,16,17,18}, - py27-cov + py{27}-dj{18,19,100}, + py{36}-dj{18,19,100}, + py36-cov skipsdist = True usedevelop = True @@ -13,21 +12,19 @@ basepython = py27: python2.7 py33: python3.3 py34: python3.4 - pypy: pypy + py35: python3.5 + py36: python3.6 deps = -rtestsapp/requirements.txt - dj14: django>=1.4,<1.4.999 - dj15: django>=1.5,<1.5.999 - dj16: django>=1.6,<1.6.999 - dj17: django>=1.7,<1.7.999 dj18: django>=1.8,<1.8.999 - dj19: https://github.com/django/django/archive/master.tar.gz#egg=django + dj19: django>=1.9,<1.9.999 + dj100: django>=1.10 setenv = DJANGO_SETTINGS_MODULE = testsapp.tests_settings PYTHONPATH = {toxinidir}/testsapp:{toxinidir} -[testenv:py27-cov] +[testenv:py36-cov] commands = py.test --cov=dj_elastictranscoder deps = -rtestsapp/requirements.txt - django>=1.8,<1.8.999 + django>=1.8