Commit 8a99ed810e9e94cb9dff1c362b2c4ebe2e37dead

Authored by Jannis Leidel
2 parents 6ec2c956 c991db41

Merge pull request #17 from NotSqrt/master

django 1.7 compatibility, tox, travis
@@ -7,5 +7,14 @@ python: @@ -7,5 +7,14 @@ python:
7 env: 7 env:
8 - DJANGO_PACKAGE="Django>=1.5,<1.6" 8 - DJANGO_PACKAGE="Django>=1.5,<1.6"
9 - DJANGO_PACKAGE="Django>=1.6,<1.7" 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 script: python setup.py test 20 script: python setup.py test
  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 + ]
@@ -10,7 +10,7 @@ except IOError: @@ -10,7 +10,7 @@ except IOError:
10 10
11 setup( 11 setup(
12 name='django-contrib-comments', 12 name='django-contrib-comments',
13 - version='1.5', 13 + version='1.5.1',
14 url="http://github.com/django/django-contrib-comments", 14 url="http://github.com/django/django-contrib-comments",
15 description='The code formerly known as django.contrib.comments.', 15 description='The code formerly known as django.contrib.comments.',
16 long_description=long_description, 16 long_description=long_description,
@@ -6,6 +6,7 @@ Adapted from django-constance, which itself was adapted from django-adminfiles. @@ -6,6 +6,7 @@ Adapted from django-constance, which itself was adapted from django-adminfiles.
6 6
7 import os 7 import os
8 import sys 8 import sys
  9 +import django
9 10
10 here = os.path.dirname(os.path.abspath(__file__)) 11 here = os.path.dirname(os.path.abspath(__file__))
11 parent = os.path.dirname(here) 12 parent = os.path.dirname(here)
@@ -24,6 +25,11 @@ settings.configure( @@ -24,6 +25,11 @@ settings.configure(
24 "testapp", 25 "testapp",
25 "custom_comments", 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 ROOT_URLCONF = 'testapp.urls', 33 ROOT_URLCONF = 'testapp.urls',
28 SECRET_KEY = "it's a secret to everyone", 34 SECRET_KEY = "it's a secret to everyone",
29 SITE_ID = 1, 35 SITE_ID = 1,
@@ -32,6 +38,8 @@ settings.configure( @@ -32,6 +38,8 @@ settings.configure(
32 from django.test.simple import DjangoTestSuiteRunner 38 from django.test.simple import DjangoTestSuiteRunner
33 39
34 def main(): 40 def main():
  41 + if django.VERSION >= (1, 7):
  42 + django.setup()
35 runner = DjangoTestSuiteRunner(failfast=True, verbosity=1) 43 runner = DjangoTestSuiteRunner(failfast=True, verbosity=1)
36 failures = runner.run_tests(['testapp'], interactive=True) 44 failures = runner.run_tests(['testapp'], interactive=True)
37 sys.exit(failures) 45 sys.exit(failures)
@@ -30,7 +30,7 @@ class Entry(models.Model): @@ -30,7 +30,7 @@ class Entry(models.Model):
30 title = models.CharField(max_length=250) 30 title = models.CharField(max_length=250)
31 body = models.TextField() 31 body = models.TextField()
32 pub_date = models.DateField() 32 pub_date = models.DateField()
33 - enable_comments = models.BooleanField() 33 + enable_comments = models.BooleanField(default=False)
34 34
35 def __str__(self): 35 def __str__(self):
36 return self.title 36 return self.title
1 from __future__ import absolute_import 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 from django.conf import settings 10 from django.conf import settings
4 from django.core.exceptions import ImproperlyConfigured 11 from django.core.exceptions import ImproperlyConfigured
5 from django.test.utils import override_settings 12 from django.test.utils import override_settings
@@ -18,6 +25,7 @@ class CommentAppAPITests(CommentTestCase): @@ -18,6 +25,7 @@ class CommentAppAPITests(CommentTestCase):
18 def testGetCommentApp(self): 25 def testGetCommentApp(self):
19 self.assertEqual(django_comments.get_comment_app(), django_comments) 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 @override_settings( 29 @override_settings(
22 COMMENTS_APP='missing_app', 30 COMMENTS_APP='missing_app',
23 INSTALLED_APPS=list(settings.INSTALLED_APPS) + ['missing_app'], 31 INSTALLED_APPS=list(settings.INSTALLED_APPS) + ['missing_app'],
@@ -47,8 +55,6 @@ class CommentAppAPITests(CommentTestCase): @@ -47,8 +55,6 @@ class CommentAppAPITests(CommentTestCase):
47 55
48 @override_settings( 56 @override_settings(
49 COMMENTS_APP='custom_comments', 57 COMMENTS_APP='custom_comments',
50 - INSTALLED_APPS=list(settings.INSTALLED_APPS) + [  
51 - 'custom_comments'],  
52 ) 58 )
53 class CustomCommentTest(CommentTestCase): 59 class CustomCommentTest(CommentTestCase):
54 urls = 'testapp.urls' 60 urls = 'testapp.urls'
1 [tox] 1 [tox]
2 envlist = py26-django15, py27-django15, py32-django15, py33-django15, 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 [testenv] 6 [testenv]
6 commands = {envpython} setup.py test 7 commands = {envpython} setup.py test
7 8
8 [testenv:py26-django15] 9 [testenv:py26-django15]
9 basepython = python2.6 10 basepython = python2.6
10 -deps = Django>=1.5,<1.6 11 +deps =
  12 + Django>=1.5,<1.6
  13 + unittest2
11 14
12 [testenv:py27-django15] 15 [testenv:py27-django15]
13 basepython = python2.7 16 basepython = python2.7
@@ -23,7 +26,9 @@ deps = Django>=1.5,<1.6 @@ -23,7 +26,9 @@ deps = Django>=1.5,<1.6
23 26
24 [testenv:py26-django16] 27 [testenv:py26-django16]
25 basepython = python2.6 28 basepython = python2.6
26 -deps = Django>=1.6,<1.7 29 +deps =
  30 + Django>=1.6,<1.7
  31 + unittest2
27 32
28 [testenv:py27-django16] 33 [testenv:py27-django16]
29 basepython = python2.7 34 basepython = python2.7
@@ -37,3 +42,14 @@ deps = Django>=1.6,<1.7 @@ -37,3 +42,14 @@ deps = Django>=1.6,<1.7
37 basepython = python3.3 42 basepython = python3.3
38 deps = Django>=1.6,<1.7 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