Commit 8a99ed810e9e94cb9dff1c362b2c4ebe2e37dead
Merge pull request #17 from NotSqrt/master
django 1.7 compatibility, tox, travis
Showing
8 changed files
with
110 additions
and
8 deletions
| ... | ... | @@ -7,5 +7,14 @@ python: |
| 7 | 7 | env: |
| 8 | 8 | - DJANGO_PACKAGE="Django>=1.5,<1.6" |
| 9 | 9 | - DJANGO_PACKAGE="Django>=1.6,<1.7" |
| 10 | -install: pip install $DJANGO_PACKAGE --use-mirrors | |
| 10 | + - DJANGO_PACKAGE="Django>=1.7,<1.8" | |
| 11 | + | |
| 12 | +matrix: | |
| 13 | + exclude: | |
| 14 | + - python: "2.6" | |
| 15 | + env: DJANGO_PACKAGE="Django>=1.7,<1.8" | |
| 16 | + | |
| 17 | +install: | |
| 18 | + - pip install $DJANGO_PACKAGE --use-mirrors | |
| 19 | + - if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install --use-mirrors unittest2; fi | |
| 11 | 20 | script: python setup.py test | ... | ... |
django_comments/migrations/0001_initial.py
0 → 100644
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | +from __future__ import unicode_literals | |
| 3 | + | |
| 4 | +from django.db import models, migrations | |
| 5 | +from django.conf import settings | |
| 6 | + | |
| 7 | + | |
| 8 | +class Migration(migrations.Migration): | |
| 9 | + | |
| 10 | + dependencies = [ | |
| 11 | + ('sites', '0001_initial'), | |
| 12 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | |
| 13 | + ('contenttypes', '0001_initial'), | |
| 14 | + ] | |
| 15 | + | |
| 16 | + operations = [ | |
| 17 | + migrations.CreateModel( | |
| 18 | + name='Comment', | |
| 19 | + fields=[ | |
| 20 | + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), | |
| 21 | + ('object_pk', models.TextField(verbose_name='object ID')), | |
| 22 | + ('user_name', models.CharField(max_length=50, verbose_name="user's name", blank=True)), | |
| 23 | + ('user_email', models.EmailField(max_length=75, verbose_name="user's email address", blank=True)), | |
| 24 | + ('user_url', models.URLField(verbose_name="user's URL", blank=True)), | |
| 25 | + ('comment', models.TextField(max_length=3000, verbose_name='comment')), | |
| 26 | + ('submit_date', models.DateTimeField(default=None, verbose_name='date/time submitted')), | |
| 27 | + ('ip_address', models.GenericIPAddressField(unpack_ipv4=True, null=True, verbose_name='IP address', blank=True)), | |
| 28 | + ('is_public', models.BooleanField(default=True, help_text='Uncheck this box to make the comment effectively disappear from the site.', verbose_name='is public')), | |
| 29 | + ('is_removed', models.BooleanField(default=False, help_text='Check this box if the comment is inappropriate. A "This comment has been removed" message will be displayed instead.', verbose_name='is removed')), | |
| 30 | + ('content_type', models.ForeignKey(related_name='content_type_set_for_comment', verbose_name='content type', to='contenttypes.ContentType')), | |
| 31 | + ('site', models.ForeignKey(to='sites.Site')), | |
| 32 | + ('user', models.ForeignKey(related_name='comment_comments', verbose_name='user', blank=True, to=settings.AUTH_USER_MODEL, null=True)), | |
| 33 | + ], | |
| 34 | + options={ | |
| 35 | + 'ordering': ('submit_date',), | |
| 36 | + 'db_table': 'django_comments', | |
| 37 | + 'verbose_name': 'comment', | |
| 38 | + 'verbose_name_plural': 'comments', | |
| 39 | + 'permissions': [('can_moderate', 'Can moderate comments')], | |
| 40 | + }, | |
| 41 | + bases=(models.Model,), | |
| 42 | + ), | |
| 43 | + migrations.CreateModel( | |
| 44 | + name='CommentFlag', | |
| 45 | + fields=[ | |
| 46 | + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), | |
| 47 | + ('flag', models.CharField(max_length=30, verbose_name='flag', db_index=True)), | |
| 48 | + ('flag_date', models.DateTimeField(default=None, verbose_name='date')), | |
| 49 | + ('comment', models.ForeignKey(related_name='flags', verbose_name='comment', to='django_comments.Comment')), | |
| 50 | + ('user', models.ForeignKey(related_name='comment_flags', verbose_name='user', to=settings.AUTH_USER_MODEL)), | |
| 51 | + ], | |
| 52 | + options={ | |
| 53 | + 'db_table': 'django_comment_flags', | |
| 54 | + 'verbose_name': 'comment flag', | |
| 55 | + 'verbose_name_plural': 'comment flags', | |
| 56 | + }, | |
| 57 | + bases=(models.Model,), | |
| 58 | + ), | |
| 59 | + migrations.AlterUniqueTogether( | |
| 60 | + name='commentflag', | |
| 61 | + unique_together=set([('user', 'comment', 'flag')]), | |
| 62 | + ), | |
| 63 | + ] | ... | ... |
django_comments/migrations/__init__.py
0 → 100644
| ... | ... | @@ -10,7 +10,7 @@ except IOError: |
| 10 | 10 | |
| 11 | 11 | setup( |
| 12 | 12 | name='django-contrib-comments', |
| 13 | - version='1.5', | |
| 13 | + version='1.5.1', | |
| 14 | 14 | url="http://github.com/django/django-contrib-comments", |
| 15 | 15 | description='The code formerly known as django.contrib.comments.', |
| 16 | 16 | long_description=long_description, | ... | ... |
| ... | ... | @@ -6,6 +6,7 @@ Adapted from django-constance, which itself was adapted from django-adminfiles. |
| 6 | 6 | |
| 7 | 7 | import os |
| 8 | 8 | import sys |
| 9 | +import django | |
| 9 | 10 | |
| 10 | 11 | here = os.path.dirname(os.path.abspath(__file__)) |
| 11 | 12 | parent = os.path.dirname(here) |
| ... | ... | @@ -24,6 +25,11 @@ settings.configure( |
| 24 | 25 | "testapp", |
| 25 | 26 | "custom_comments", |
| 26 | 27 | ], |
| 28 | + MIDDLEWARE_CLASSES=( | |
| 29 | + 'django.contrib.sessions.middleware.SessionMiddleware', | |
| 30 | + 'django.contrib.auth.middleware.AuthenticationMiddleware', | |
| 31 | + 'django.contrib.messages.middleware.MessageMiddleware', | |
| 32 | + ), | |
| 27 | 33 | ROOT_URLCONF = 'testapp.urls', |
| 28 | 34 | SECRET_KEY = "it's a secret to everyone", |
| 29 | 35 | SITE_ID = 1, |
| ... | ... | @@ -32,6 +38,8 @@ settings.configure( |
| 32 | 38 | from django.test.simple import DjangoTestSuiteRunner |
| 33 | 39 | |
| 34 | 40 | def main(): |
| 41 | + if django.VERSION >= (1, 7): | |
| 42 | + django.setup() | |
| 35 | 43 | runner = DjangoTestSuiteRunner(failfast=True, verbosity=1) |
| 36 | 44 | failures = runner.run_tests(['testapp'], interactive=True) |
| 37 | 45 | sys.exit(failures) | ... | ... |
| ... | ... | @@ -30,7 +30,7 @@ class Entry(models.Model): |
| 30 | 30 | title = models.CharField(max_length=250) |
| 31 | 31 | body = models.TextField() |
| 32 | 32 | pub_date = models.DateField() |
| 33 | - enable_comments = models.BooleanField() | |
| 33 | + enable_comments = models.BooleanField(default=False) | |
| 34 | 34 | |
| 35 | 35 | def __str__(self): |
| 36 | 36 | return self.title | ... | ... |
| 1 | 1 | from __future__ import absolute_import |
| 2 | 2 | |
| 3 | +try: | |
| 4 | + import unittest2 as unittest | |
| 5 | +except ImportError: | |
| 6 | + import unittest | |
| 7 | + | |
| 8 | + | |
| 9 | +import django | |
| 3 | 10 | from django.conf import settings |
| 4 | 11 | from django.core.exceptions import ImproperlyConfigured |
| 5 | 12 | from django.test.utils import override_settings |
| ... | ... | @@ -18,6 +25,7 @@ class CommentAppAPITests(CommentTestCase): |
| 18 | 25 | def testGetCommentApp(self): |
| 19 | 26 | self.assertEqual(django_comments.get_comment_app(), django_comments) |
| 20 | 27 | |
| 28 | + @unittest.skipIf(django.VERSION >= (1, 7), "Missing apps raise ImportError with django 1.7") | |
| 21 | 29 | @override_settings( |
| 22 | 30 | COMMENTS_APP='missing_app', |
| 23 | 31 | INSTALLED_APPS=list(settings.INSTALLED_APPS) + ['missing_app'], |
| ... | ... | @@ -47,8 +55,6 @@ class CommentAppAPITests(CommentTestCase): |
| 47 | 55 | |
| 48 | 56 | @override_settings( |
| 49 | 57 | COMMENTS_APP='custom_comments', |
| 50 | - INSTALLED_APPS=list(settings.INSTALLED_APPS) + [ | |
| 51 | - 'custom_comments'], | |
| 52 | 58 | ) |
| 53 | 59 | class CustomCommentTest(CommentTestCase): |
| 54 | 60 | urls = 'testapp.urls' | ... | ... |
| 1 | 1 | [tox] |
| 2 | 2 | envlist = py26-django15, py27-django15, py32-django15, py33-django15, |
| 3 | - py26-django16, py27-django16, py32-django16, py33-django16 | |
| 3 | + py26-django16, py27-django16, py32-django16, py33-django16, | |
| 4 | + py27-django17, py32-django17, py33-django17 | |
| 4 | 5 | |
| 5 | 6 | [testenv] |
| 6 | 7 | commands = {envpython} setup.py test |
| 7 | 8 | |
| 8 | 9 | [testenv:py26-django15] |
| 9 | 10 | basepython = python2.6 |
| 10 | -deps = Django>=1.5,<1.6 | |
| 11 | +deps = | |
| 12 | + Django>=1.5,<1.6 | |
| 13 | + unittest2 | |
| 11 | 14 | |
| 12 | 15 | [testenv:py27-django15] |
| 13 | 16 | basepython = python2.7 |
| ... | ... | @@ -23,7 +26,9 @@ deps = Django>=1.5,<1.6 |
| 23 | 26 | |
| 24 | 27 | [testenv:py26-django16] |
| 25 | 28 | basepython = python2.6 |
| 26 | -deps = Django>=1.6,<1.7 | |
| 29 | +deps = | |
| 30 | + Django>=1.6,<1.7 | |
| 31 | + unittest2 | |
| 27 | 32 | |
| 28 | 33 | [testenv:py27-django16] |
| 29 | 34 | basepython = python2.7 |
| ... | ... | @@ -37,3 +42,14 @@ deps = Django>=1.6,<1.7 |
| 37 | 42 | basepython = python3.3 |
| 38 | 43 | deps = Django>=1.6,<1.7 |
| 39 | 44 | |
| 45 | +[testenv:py27-django17] | |
| 46 | +basepython = python2.7 | |
| 47 | +deps = Django>=1.7,<1.8 | |
| 48 | + | |
| 49 | +[testenv:py32-django17] | |
| 50 | +basepython = python3.2 | |
| 51 | +deps = Django>=1.7,<1.8 | |
| 52 | + | |
| 53 | +[testenv:py33-django17] | |
| 54 | +basepython = python3.3 | |
| 55 | +deps = Django>=1.7,<1.8 | ... | ... |
Please
register
or
login
to post a comment