diff --git a/djadmin2/migrations/0001_initial.py b/djadmin2/migrations/0001_initial.py index bd03761..3931cd3 100644 --- a/djadmin2/migrations/0001_initial.py +++ b/djadmin2/migrations/0001_initial.py @@ -16,19 +16,19 @@ class Migration(migrations.Migration): migrations.CreateModel( name='LogEntry', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), - ('action_time', models.DateTimeField(auto_now=True, verbose_name='action time')), - ('object_id', models.TextField(blank=True, null=True, verbose_name='object id')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('action_time', models.DateTimeField(verbose_name='action time', auto_now=True)), + ('object_id', models.TextField(verbose_name='object id', null=True, blank=True)), ('object_repr', models.CharField(max_length=200, verbose_name='object repr')), ('action_flag', models.PositiveSmallIntegerField(verbose_name='action flag')), - ('change_message', models.TextField(blank=True, verbose_name='change message')), - ('content_type', models.ForeignKey(null=True, related_name='log_entries', to='contenttypes.ContentType', blank=True)), + ('change_message', models.TextField(verbose_name='change message', blank=True)), + ('content_type', models.ForeignKey(related_name='log_entries', null=True, blank=True, to='contenttypes.ContentType')), ('user', models.ForeignKey(related_name='log_entries', to=settings.AUTH_USER_MODEL)), ], options={ - 'verbose_name_plural': 'log entries', - 'ordering': ('-action_time',), 'verbose_name': 'log entry', + 'ordering': ('-action_time',), + 'verbose_name_plural': 'log entries', }, ), ] diff --git a/djadmin2/tests/migrations/0001_initial.py b/djadmin2/tests/migrations/0001_initial.py new file mode 100644 index 0000000..700cd16 --- /dev/null +++ b/djadmin2/tests/migrations/0001_initial.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='BigThing', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ], + ), + migrations.CreateModel( + name='RendererTestModel', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('decimal', models.DecimalField(max_digits=10, decimal_places=5)), + ], + ), + migrations.CreateModel( + name='SmallThing', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ], + ), + migrations.CreateModel( + name='TagsTestsModel', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('field1', models.CharField(max_length=23)), + ('field2', models.CharField(max_length=42, verbose_name='second field')), + ], + options={ + 'verbose_name': 'Tags Test Model', + 'verbose_name_plural': 'Tags Test Models', + }, + ), + migrations.CreateModel( + name='Thing', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ], + ), + migrations.CreateModel( + name='UtilsTestModel', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('field1', models.CharField(max_length=23)), + ('field2', models.CharField(max_length=42, verbose_name='second field')), + ], + options={ + 'verbose_name': 'Utils Test Model', + 'verbose_name_plural': 'Utils Test Models', + }, + ), + ] diff --git a/djadmin2/tests/migrations/__init__.py b/djadmin2/tests/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djadmin2/tests/models.py b/djadmin2/tests/models.py index e69de29..22ffe33 100644 --- a/djadmin2/tests/models.py +++ b/djadmin2/tests/models.py @@ -0,0 +1,50 @@ +from django.db import models + + +class Thing(models.Model): + pass + + +class SmallThing(models.Model): + pass + + +class BigThing(models.Model): + pass + + +class TagsTestsModel(models.Model): + + field1 = models.CharField(max_length=23) + field2 = models.CharField('second field', max_length=42) + + def was_published_recently(self): + return True + was_published_recently.boolean = True + was_published_recently.short_description = 'Published recently?' + + class Meta: + verbose_name = "Tags Test Model" + verbose_name_plural = "Tags Test Models" + + +class RendererTestModel(models.Model): + decimal = models.DecimalField(decimal_places=5, max_digits=10) + + +class UtilsTestModel(models.Model): + + field1 = models.CharField(max_length=23) + field2 = models.CharField('second field', max_length=42) + + def simple_method(self): + return 42 + + def was_published_recently(self): + return True + was_published_recently.boolean = True + was_published_recently.short_description = 'Published recently?' + + class Meta: + verbose_name = "Utils Test Model" + verbose_name_plural = "Utils Test Models" diff --git a/djadmin2/tests/test_actions.py b/djadmin2/tests/test_actions.py index f4bd6c4..7a48e55 100644 --- a/djadmin2/tests/test_actions.py +++ b/djadmin2/tests/test_actions.py @@ -1,12 +1,8 @@ -from django.db import models from django.test import TestCase from ..core import Admin2 from ..actions import get_description - - -class Thing(models.Model): - pass +from .models import Thing class TestAction(object): diff --git a/djadmin2/tests/test_admin2tags.py b/djadmin2/tests/test_admin2tags.py index 61c5042..6c3dcb9 100644 --- a/djadmin2/tests/test_admin2tags.py +++ b/djadmin2/tests/test_admin2tags.py @@ -1,25 +1,10 @@ -from django.db import models from django import forms from django.forms.formsets import formset_factory from django.test import TestCase from ..templatetags import admin2_tags from ..views import IndexView - - -class TagsTestsModel(models.Model): - - field1 = models.CharField(max_length=23) - field2 = models.CharField('second field', max_length=42) - - def was_published_recently(self): - return True - was_published_recently.boolean = True - was_published_recently.short_description = 'Published recently?' - - class Meta: - verbose_name = "Tags Test Model" - verbose_name_plural = "Tags Test Models" +from .models import TagsTestsModel class TagsTestForm(forms.Form): diff --git a/djadmin2/tests/test_core.py b/djadmin2/tests/test_core.py index f92fb69..3a61ec0 100644 --- a/djadmin2/tests/test_core.py +++ b/djadmin2/tests/test_core.py @@ -1,17 +1,12 @@ -from django.db import models -from django.core.exceptions import ImproperlyConfigured -from django.test import TestCase from django.contrib.auth.models import Group, User from django.contrib.sites.models import Site +from django.core.exceptions import ImproperlyConfigured +from django.test import TestCase from djadmin2.site import djadmin2_site -from ..types import ModelAdmin2 +from .models import SmallThing from ..core import Admin2 - - -class SmallThing(models.Model): - pass - +from ..types import ModelAdmin2 APP_LABEL, APP_VERBOSE_NAME = 'app_one_label', 'App One Verbose Name' diff --git a/djadmin2/tests/test_renderers.py b/djadmin2/tests/test_renderers.py index a2921e3..964e695 100644 --- a/djadmin2/tests/test_renderers.py +++ b/djadmin2/tests/test_renderers.py @@ -5,15 +5,11 @@ import datetime as dt from decimal import Decimal from django.test import TestCase -from django.db import models -from django.utils.translation import activate from django.utils import six +from django.utils.translation import activate from .. import renderers - - -class RendererTestModel(models.Model): - decimal = models.DecimalField(decimal_places=5, max_digits=10) +from .models import RendererTestModel class BooleanRendererTest(TestCase): diff --git a/djadmin2/tests/test_types.py b/djadmin2/tests/test_types.py index ed0a92d..a3f7d40 100644 --- a/djadmin2/tests/test_types.py +++ b/djadmin2/tests/test_types.py @@ -1,9 +1,9 @@ -from django.db import models from django.test import TestCase from .. import views from ..types import ModelAdmin2, immutable_admin_factory from ..core import Admin2 +from .models import BigThing class ModelAdmin(object): @@ -39,10 +39,6 @@ class ImmutableAdminFactoryTests(TestCase): self.immutable_admin.d -class BigThing(models.Model): - pass - - class ModelAdminTest(TestCase): def setUp(self): diff --git a/djadmin2/tests/test_utils.py b/djadmin2/tests/test_utils.py index c53946d..39767ec 100644 --- a/djadmin2/tests/test_utils.py +++ b/djadmin2/tests/test_utils.py @@ -1,27 +1,9 @@ -from django.db import models from django.test import TestCase from django.utils import six from .. import utils from ..views import IndexView - - -class UtilsTestModel(models.Model): - - field1 = models.CharField(max_length=23) - field2 = models.CharField('second field', max_length=42) - - def simple_method(self): - return 42 - - def was_published_recently(self): - return True - was_published_recently.boolean = True - was_published_recently.short_description = 'Published recently?' - - class Meta: - verbose_name = "Utils Test Model" - verbose_name_plural = "Utils Test Models" +from .models import UtilsTestModel class UtilsTest(TestCase): diff --git a/example/blog/migrations/0001_initial.py b/example/blog/migrations/0001_initial.py index 73b42b7..6761aea 100644 --- a/example/blog/migrations/0001_initial.py +++ b/example/blog/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -import django.db.models.deletion from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,18 +14,18 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Comment', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('body', models.TextField(verbose_name='body')), ], options={ - 'verbose_name_plural': 'comments', 'verbose_name': 'comment', + 'verbose_name_plural': 'comments', }, ), migrations.CreateModel( name='Count', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('num', models.PositiveSmallIntegerField()), ('parent', models.ForeignKey(to='blog.Count', null=True)), ], @@ -33,21 +33,21 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Event', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('date', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='EventGuide', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), - ('event', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='blog.Event')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('event', models.ForeignKey(to='blog.Event', on_delete=django.db.models.deletion.DO_NOTHING)), ], ), migrations.CreateModel( name='Guest', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('name', models.CharField(max_length=255)), ('event', models.OneToOneField(to='blog.Event')), ], @@ -58,27 +58,27 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Location', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), - ('event', models.OneToOneField(to='blog.Event', verbose_name='awesome event')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('event', models.OneToOneField(verbose_name='awesome event', to='blog.Event')), ], ), migrations.CreateModel( name='Post', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('title', models.CharField(max_length=255, verbose_name='title')), ('body', models.TextField(verbose_name='body')), - ('published', models.BooleanField(default=False, verbose_name='published')), + ('published', models.BooleanField(verbose_name='published', default=False)), ('published_date', models.DateField(blank=True, null=True)), ], options={ - 'verbose_name_plural': 'posts', 'verbose_name': 'post', + 'verbose_name_plural': 'posts', }, ), migrations.AddField( model_name='comment', name='post', - field=models.ForeignKey(to='blog.Post', verbose_name='post', related_name='comments'), + field=models.ForeignKey(related_name='comments', verbose_name='post', to='blog.Post'), ), ] diff --git a/example/db.sqlite3 b/example/db.sqlite3 index 186c5e8..396feb1 100644 Binary files a/example/db.sqlite3 and b/example/db.sqlite3 differ diff --git a/example/example/settings.py b/example/example/settings.py index cfedad2..bafc798 100644 --- a/example/example/settings.py +++ b/example/example/settings.py @@ -44,6 +44,7 @@ INSTALLED_APPS = [ 'rest_framework', 'crispy_forms', 'djadmin2', + 'djadmin2.tests', 'djadmin2.themes.djadmin2theme_default', 'blog', 'files', @@ -141,7 +142,7 @@ STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) -MEDIA_ROOT = os.path.join(BASE_DIR) +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = "/media/" ADMIN2_THEME_DIRECTORY = "djadmin2theme_default" \ No newline at end of file diff --git a/example/files/migrations/0001_initial.py b/example/files/migrations/0001_initial.py index f397eb9..fb58015 100644 --- a/example/files/migrations/0001_initial.py +++ b/example/files/migrations/0001_initial.py @@ -13,24 +13,24 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CaptionedFile', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('caption', models.CharField(max_length=200, verbose_name='caption')), - ('publication', models.FileField(upload_to='media', verbose_name='Uploaded File')), + ('publication', models.FileField(verbose_name='Uploaded File', upload_to='captioned-files')), ], options={ - 'verbose_name_plural': 'Captioned Files', 'verbose_name': 'Captioned File', + 'verbose_name_plural': 'Captioned Files', }, ), migrations.CreateModel( name='UncaptionedFile', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), - ('publication', models.FileField(upload_to='media', verbose_name='Uploaded File')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('publication', models.FileField(verbose_name='Uploaded File', upload_to='uncaptioned-files')), ], options={ - 'verbose_name_plural': 'Uncaptioned Files', 'verbose_name': 'Uncaptioned File', + 'verbose_name_plural': 'Uncaptioned Files', }, ), ] diff --git a/example/polls/migrations/0001_initial.py b/example/polls/migrations/0001_initial.py index 536c8a9..21980fd 100644 --- a/example/polls/migrations/0001_initial.py +++ b/example/polls/migrations/0001_initial.py @@ -13,30 +13,30 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Choice', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('choice_text', models.CharField(max_length=200, verbose_name='choice text')), - ('votes', models.IntegerField(default=0, verbose_name='votes')), + ('votes', models.IntegerField(verbose_name='votes', default=0)), ], options={ - 'verbose_name_plural': 'choices', 'verbose_name': 'choice', + 'verbose_name_plural': 'choices', }, ), migrations.CreateModel( name='Poll', fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, primary_key=True, verbose_name='ID')), + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), ('question', models.CharField(max_length=200, verbose_name='question')), ('pub_date', models.DateTimeField(verbose_name='date published')), ], options={ - 'verbose_name_plural': 'polls', 'verbose_name': 'poll', + 'verbose_name_plural': 'polls', }, ), migrations.AddField( model_name='choice', name='poll', - field=models.ForeignKey(to='polls.Poll', verbose_name='poll'), + field=models.ForeignKey(verbose_name='poll', to='polls.Poll'), ), ] diff --git a/tox.ini b/tox.ini index 7b3c82c..d1c275a 100644 --- a/tox.ini +++ b/tox.ini @@ -6,16 +6,15 @@ exclude = migrations/*,docs/* [tox] envlist = - #py27-{1.8,1.9,master}, - #py33-{1.8}, - #py34-{1.8,1.9,master}, - #py35-{1.8,1.9,master}, - py35-{1.8}, + py27-{1.8,1.9,master}, + py33-{1.8}, + py34-{1.8,1.9,master}, + py35-{1.8,1.9,master}, [testenv] commands = flake8 djadmin2 - py.test --nomigrations [] + py.test [] deps = -rrequirements_test.txt 1.8: Django>=1.8,<1.9