From e41556296544e80c99c460c2ce947b1275c1f25b Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 14:42:51 -0800 Subject: [PATCH 01/16] Cleanup - removing unnecessary imports. --- armstrong/core/arm_content/fields/widgets/__init__.py | 0 armstrong/core/arm_content/models.py | 1 - armstrong/core/arm_content/video/backends/__init__.py | 2 -- 3 files changed, 3 deletions(-) delete mode 100644 armstrong/core/arm_content/fields/widgets/__init__.py diff --git a/armstrong/core/arm_content/fields/widgets/__init__.py b/armstrong/core/arm_content/fields/widgets/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/core/arm_content/models.py b/armstrong/core/arm_content/models.py index 7eab15a..cfec302 100644 --- a/armstrong/core/arm_content/models.py +++ b/armstrong/core/arm_content/models.py @@ -1,6 +1,5 @@ from django.conf import settings from django.db import models -from django.db.models.query import QuerySet from model_utils.managers import InheritanceManager from taggit.managers import TaggableManager diff --git a/armstrong/core/arm_content/video/backends/__init__.py b/armstrong/core/arm_content/video/backends/__init__.py index 7eb0027..b6268ba 100644 --- a/armstrong/core/arm_content/video/backends/__init__.py +++ b/armstrong/core/arm_content/video/backends/__init__.py @@ -2,8 +2,6 @@ pkg_resources.declare_namespace(__name__) from armstrong.utils.backends import GenericBackend -from django.conf import settings as default_settings -from django.utils.importlib import import_module from .youtube import YouTubeBackend from .vimeo import VimeoBackend From 531c3b97cf90b29aafa7a393de774ebcc3a19f7a Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 15:07:08 -0800 Subject: [PATCH 02/16] WIP cleanup - removing unnecessary import and found two incorrect tests. These two tests still pass even without the patching. That indicates that whatever is under test is not actually being tested or that the feature is broken. Additionally, there are better ways to patch settings during test and AUTH_PROFILE_MODULE was deprecated in Django 1.5. --- armstrong/core/arm_content/fields/authors.py | 2 -- armstrong/core/arm_content/tests/fields/authors.py | 6 +----- armstrong/core/arm_content/tests/mixins/authors.py | 6 +----- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/armstrong/core/arm_content/fields/authors.py b/armstrong/core/arm_content/fields/authors.py index d9efd07..71fb8fe 100644 --- a/armstrong/core/arm_content/fields/authors.py +++ b/armstrong/core/arm_content/fields/authors.py @@ -1,9 +1,7 @@ -from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist from django.db import models from django.db.models.fields.related import create_many_related_manager -from django.db.models.fields.related import ManyRelatedObjectsDescriptor # TODO: find permanent home for this code diff --git a/armstrong/core/arm_content/tests/fields/authors.py b/armstrong/core/arm_content/tests/fields/authors.py index 5f45fbb..ce68711 100644 --- a/armstrong/core/arm_content/tests/fields/authors.py +++ b/armstrong/core/arm_content/tests/fields/authors.py @@ -3,7 +3,6 @@ from django.db import models from django.utils import unittest from django.template import Template, Context -import fudge try: import south except ImportError: @@ -117,10 +116,7 @@ def test_html_returns_plain_list_if_not_configured_with_profiles(self): expected = "%s and %s" % (bob.get_full_name(), alice.get_full_name()) article = random_authored_model(SimpleAuthoredModel, bob, alice) - settings = fudge.Fake() - settings.has_attr(AUTH_PROFILE_MODULE=None) - with fudge.patched_context(authors, 'settings', settings): - self.assertEqual(article.authors.html(), expected) + self.assertEqual(article.authors.html(), expected) def test_html_returns_string_with_html_links(self): bob, alice = generate_random_staff_users() diff --git a/armstrong/core/arm_content/tests/mixins/authors.py b/armstrong/core/arm_content/tests/mixins/authors.py index df059da..27ab0f8 100644 --- a/armstrong/core/arm_content/tests/mixins/authors.py +++ b/armstrong/core/arm_content/tests/mixins/authors.py @@ -8,7 +8,6 @@ from ..arm_content_support.forms import SimpleMixedinAuthorForm from ...fields import AuthorsField -from ...fields import authors class AuthorsMixinTestCase(ArmContentTestCase): @@ -79,10 +78,7 @@ def test_html_returns_plain_list_if_not_configured_with_profiles(self): expected = "%s and %s" % (bob.get_full_name(), alice.get_full_name()) article = random_authored_model(SimpleMixedinAuthorModel, bob, alice) - settings = fudge.Fake() - settings.has_attr(AUTH_PROFILE_MODULE=None) - with fudge.patched_context(authors, 'settings', settings): - self.assertEqual(article.authors.html(), expected) + self.assertEqual(article.authors.html(), expected) def test_html_returns_string_with_html_links(self): bob, alice = generate_random_staff_users() From 7b82534884f12b48ea5136d1e7c6428a418709c9 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:19:02 -0800 Subject: [PATCH 03/16] Clarify the two tests previously discussed to better reflect what is happening. The assumption was that users always have profiles and that's incorrect. From the 1.4 docs, "The method get_profile() does not create a profile if one does not exist." These users never have profiles so that's why the patching didn't matter and why the tests passed anyway. --- armstrong/core/arm_content/tests/fields/authors.py | 4 +++- armstrong/core/arm_content/tests/mixins/authors.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/armstrong/core/arm_content/tests/fields/authors.py b/armstrong/core/arm_content/tests/fields/authors.py index ce68711..e43feb4 100644 --- a/armstrong/core/arm_content/tests/fields/authors.py +++ b/armstrong/core/arm_content/tests/fields/authors.py @@ -3,6 +3,7 @@ from django.db import models from django.utils import unittest from django.template import Template, Context +from django.core.exceptions import ObjectDoesNotExist try: import south except ImportError: @@ -111,12 +112,13 @@ def test_separates_all_but_last_two_users_with_commas(self): self.assertEqual(1, str(article.authors).count(' and '), msg="sanity check") - def test_html_returns_plain_list_if_not_configured_with_profiles(self): + def test_html_returns_plain_list_if_user_does_not_have_profile(self): bob, alice = generate_random_staff_users() expected = "%s and %s" % (bob.get_full_name(), alice.get_full_name()) article = random_authored_model(SimpleAuthoredModel, bob, alice) self.assertEqual(article.authors.html(), expected) + self.assertRaises(ObjectDoesNotExist, bob.get_profile) def test_html_returns_string_with_html_links(self): bob, alice = generate_random_staff_users() diff --git a/armstrong/core/arm_content/tests/mixins/authors.py b/armstrong/core/arm_content/tests/mixins/authors.py index 27ab0f8..abff2f5 100644 --- a/armstrong/core/arm_content/tests/mixins/authors.py +++ b/armstrong/core/arm_content/tests/mixins/authors.py @@ -1,5 +1,6 @@ # coding=utf-8 from django.db import models +from django.core.exceptions import ObjectDoesNotExist from .._utils import * from ..arm_content_support.models import SimpleMixedinAuthorModel @@ -73,12 +74,13 @@ def test_separates_all_but_last_two_users_with_commas(self): self.assertEqual(1, str(article.authors).count(' and '), msg="sanity check") - def test_html_returns_plain_list_if_not_configured_with_profiles(self): + def test_html_returns_plain_list_if_user_does_not_have_profile(self): bob, alice = generate_random_staff_users() expected = "%s and %s" % (bob.get_full_name(), alice.get_full_name()) article = random_authored_model(SimpleMixedinAuthorModel, bob, alice) self.assertEqual(article.authors.html(), expected) + self.assertRaises(ObjectDoesNotExist, bob.get_profile) def test_html_returns_string_with_html_links(self): bob, alice = generate_random_staff_users() From 78fd9c83da1682a96000ab2cc4c5b10e7ad082b2 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:28:35 -0800 Subject: [PATCH 04/16] Import cleanup for test files. Don't rely on AppsContent for tests (that seems dangerously circular). Remove static test file, setting and url route for the removed "audio" component. --- armstrong/core/arm_content/tests/_utils.py | 6 ---- .../tests/arm_content_support/models.py | 14 ++++----- .../arm_content_support/static/audio/test.mp3 | Bin 220840 -> 0 bytes .../tests/arm_content_support/urls.py | 4 +-- .../core/arm_content/tests/fields/authors.py | 29 +++++++++--------- .../core/arm_content/tests/mixins/authors.py | 11 ++++--- .../core/arm_content/tests/models/__init__.py | 1 - .../core/arm_content/tests/templatetags.py | 14 +++------ .../tests/video/backends/__init__.py | 2 -- .../arm_content/tests/video/backends/vimeo.py | 1 + .../tests/video/backends/youtube.py | 1 + fabfile.py | 5 --- requirements/dev.txt | 1 - 13 files changed, 36 insertions(+), 53 deletions(-) delete mode 100644 armstrong/core/arm_content/tests/arm_content_support/static/audio/test.mp3 diff --git a/armstrong/core/arm_content/tests/_utils.py b/armstrong/core/arm_content/tests/_utils.py index 4c9e502..6c7cc3a 100644 --- a/armstrong/core/arm_content/tests/_utils.py +++ b/armstrong/core/arm_content/tests/_utils.py @@ -1,13 +1,7 @@ -from datetime import datetime -from django.core.files import File -from django.conf import settings - from armstrong.dev.tests.utils import ArmstrongTestCase from armstrong.dev.tests.utils.concrete import * from armstrong.dev.tests.utils.users import * -import fudge - class ArmContentTestCase(ArmstrongTestCase): pass diff --git a/armstrong/core/arm_content/tests/arm_content_support/models.py b/armstrong/core/arm_content/tests/arm_content_support/models.py index 3b0a147..2865a2e 100644 --- a/armstrong/core/arm_content/tests/arm_content_support/models.py +++ b/armstrong/core/arm_content/tests/arm_content_support/models.py @@ -3,15 +3,14 @@ import sorl.thumbnail -from ...fields import AuthorsField -from ...fields import EmbeddedVideoField -from ... import mixins +from ...fields import AuthorsField, EmbeddedVideoField +from ...mixins import EmbeddedVideoMixin, AuthorsMixin from ...mixins.images.sorl import SorlThumbnailMixin -from ...mixins.publication import PublishedManager from ...models import ContentBase -from armstrong.apps.content.models import Content as ConcreteContent +class ConcreteContent(ContentBase): + pass class ConcreteArticle(ConcreteContent): @@ -26,7 +25,7 @@ class SimpleVideoModel(models.Model): source = EmbeddedVideoField() -class SimpleMixedinVideoModel(mixins.EmbeddedVideoMixin, models.Model): +class SimpleMixedinVideoModel(EmbeddedVideoMixin, models.Model): pass @@ -34,7 +33,7 @@ class SimpleAuthoredModel(models.Model): authors = AuthorsField() -class SimpleMixedinAuthorModel(mixins.AuthorsMixin, models.Model): +class SimpleMixedinAuthorModel(AuthorsMixin, models.Model): pass @@ -76,6 +75,7 @@ class ContentOne(ContentBase): """ pass + class ContentTwo(ContentBase): """ This makes sure we have a second ContentBase sub-class that explicitly diff --git a/armstrong/core/arm_content/tests/arm_content_support/static/audio/test.mp3 b/armstrong/core/arm_content/tests/arm_content_support/static/audio/test.mp3 deleted file mode 100644 index e3e068496dd9b4ebb51671eb351f5c7311dc0d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220840 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 diff --git a/armstrong/core/arm_content/tests/arm_content_support/urls.py b/armstrong/core/arm_content/tests/arm_content_support/urls.py index 2f61555..0c5115e 100644 --- a/armstrong/core/arm_content/tests/arm_content_support/urls.py +++ b/armstrong/core/arm_content/tests/arm_content_support/urls.py @@ -1,6 +1,4 @@ -from django.conf import settings from django.conf.urls.defaults import patterns, include, url -from django.conf.urls.static import static from django.contrib import admin @@ -9,4 +7,4 @@ urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), -) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +) diff --git a/armstrong/core/arm_content/tests/fields/authors.py b/armstrong/core/arm_content/tests/fields/authors.py index e43feb4..f932fc8 100644 --- a/armstrong/core/arm_content/tests/fields/authors.py +++ b/armstrong/core/arm_content/tests/fields/authors.py @@ -1,23 +1,25 @@ # coding=utf-8 +import random from django.contrib.auth.models import User from django.db import models from django.utils import unittest from django.template import Template, Context from django.core.exceptions import ObjectDoesNotExist + try: import south except ImportError: south = False -from ..arm_content_support.models import AuthoredModelWithConfiguredOverride -from ..arm_content_support.models import AuthoredModelWithContentionalOverride -from ..arm_content_support.models import AuthoredModelWithConfiguredExtra -from ..arm_content_support.models import AuthoredModelWithContentionalExtra -from ..arm_content_support.models import SimpleAuthoredModel -from ..arm_content_support.models import SimpleProfile -from .._utils import * +from ..arm_content_support.models import ( + AuthoredModelWithConfiguredOverride, AuthoredModelWithContentionalOverride, + AuthoredModelWithConfiguredExtra, AuthoredModelWithContentionalExtra, + SimpleAuthoredModel, SimpleProfile) +from .._utils import ( + ArmContentTestCase, generate_random_staff_users, + random_authored_model, add_authors_to, add_profile_to) -from ...fields import authors +from ...fields.authors import AuthorsField, AuthorsDescriptor class AuthorsFieldTestCase(ArmContentTestCase): @@ -157,7 +159,7 @@ def test_no_spacing_with_non_alpha_on_extras(self): @unittest.skipIf(south is False, "south not installed") def test_provides_south_field_triple(self): - field = authors.AuthorsField() + field = AuthorsField() expected = ( "%s.%s" % (field.__class__.__module__, field.__class__.__name__), [], @@ -170,14 +172,14 @@ def test_provides_south_field_triple(self): self.assertEqual(field.south_field_triple(), expected) def test_defaults_to_being_related_to_base_user(self): - field = authors.AuthorsField() + field = AuthorsField() self.assertEqual(field.rel.to, User) def test_can_relate_to_custom_user(self): class MyUser(models.Model): pass - field = authors.AuthorsField(to=MyUser) + field = AuthorsField(to=MyUser) self.assertEqual(field.rel.to, MyUser) def test_can_render_in_templates(self): @@ -189,18 +191,17 @@ def test_can_render_in_templates(self): self.assertEqual(bob.get_full_name(), t.render(context)) - class AuthorsDescriptorTestCase(ArmContentTestCase): def test_does_not_choke_on_empty_instance(self): try: - authors_field = SimpleAuthoredModel.authors + SimpleAuthoredModel.authors self.assertTrue(True, "Was able to look at authors on the model") except AttributeError, e: self.fail("Should not have raised an exception: %s" % e) def test_returns_descriptor_when_retrieved_off_of_model(self): authors_field = SimpleAuthoredModel.authors - self.assertTrue(isinstance(authors_field, authors.AuthorsDescriptor)) + self.assertTrue(isinstance(authors_field, AuthorsDescriptor)) def test_can_accept_being_set_to_a_list(self): article = SimpleAuthoredModel.objects.create() diff --git a/armstrong/core/arm_content/tests/mixins/authors.py b/armstrong/core/arm_content/tests/mixins/authors.py index abff2f5..a364fa5 100644 --- a/armstrong/core/arm_content/tests/mixins/authors.py +++ b/armstrong/core/arm_content/tests/mixins/authors.py @@ -1,15 +1,16 @@ # coding=utf-8 +import random from django.db import models from django.core.exceptions import ObjectDoesNotExist -from .._utils import * - -from ..arm_content_support.models import SimpleMixedinAuthorModel -from ..arm_content_support.models import SimpleProfile +from ..arm_content_support.models import SimpleMixedinAuthorModel, SimpleProfile from ..arm_content_support.forms import SimpleMixedinAuthorForm - from ...fields import AuthorsField +from .._utils import ( + ArmContentTestCase, random_authored_model, + generate_random_staff_users, add_profile_to) + class AuthorsMixinTestCase(ArmContentTestCase): def test_models_mixed_in_with_AuthorsMixin_have_an_authors_field(self): diff --git a/armstrong/core/arm_content/tests/models/__init__.py b/armstrong/core/arm_content/tests/models/__init__.py index f9b317b..6fdeba7 100644 --- a/armstrong/core/arm_content/tests/models/__init__.py +++ b/armstrong/core/arm_content/tests/models/__init__.py @@ -8,7 +8,6 @@ from ..arm_content_support.models import ConcreteCommentary from ..arm_content_support.models import ConcreteContent from ...models import ContentBase -from ...models import Section now = datetime.datetime.now diff --git a/armstrong/core/arm_content/tests/templatetags.py b/armstrong/core/arm_content/tests/templatetags.py index c84f10e..e5b5ae1 100644 --- a/armstrong/core/arm_content/tests/templatetags.py +++ b/armstrong/core/arm_content/tests/templatetags.py @@ -1,18 +1,14 @@ -from ._utils import * -import datetime -from django.db import models from django import template -from taggit.managers import TaggableManager +import fudge -from .arm_content_support.models import SorlImage - -from armstrong.core.arm_content.templatetags import content_helpers +from ..templatetags import content_helpers +from ._utils import ArmContentTestCase class ThumbnailTestCase(ArmContentTestCase): def test_thumbnail_filter(self): thumb_url = "http://example.com/thumbnail_url.jpg" - obj = { 'image': "image"} + obj = {'image': "image"} t = template.Template("{% load content_helpers %}{{ obj.image|thumbnail:'thumb_size' }}") thumbnail_result = fudge.Fake() @@ -22,7 +18,7 @@ def test_thumbnail_filter(self): get_preset_thumbnail.expects_call().\ with_args("image", u'thumb_size').\ returns(thumbnail_result) - with fudge.patcher.patched_context(content_helpers, + with fudge.patcher.patched_context(content_helpers, 'get_preset_thumbnail', get_preset_thumbnail): result = t.render(template.Context({'obj': obj})) diff --git a/armstrong/core/arm_content/tests/video/backends/__init__.py b/armstrong/core/arm_content/tests/video/backends/__init__.py index 9d587c2..bd7abe2 100644 --- a/armstrong/core/arm_content/tests/video/backends/__init__.py +++ b/armstrong/core/arm_content/tests/video/backends/__init__.py @@ -1,5 +1,4 @@ import fudge -from fudge.inspector import arg import random from ..._utils import * @@ -9,7 +8,6 @@ from ....video import backends from ....video.backends import helpers from armstrong.utils.backends.base import MultipleBackendProxy -from armstrong.utils.backends import base class TestableBackend(object): diff --git a/armstrong/core/arm_content/tests/video/backends/vimeo.py b/armstrong/core/arm_content/tests/video/backends/vimeo.py index c0e7fff..2ec61f1 100644 --- a/armstrong/core/arm_content/tests/video/backends/vimeo.py +++ b/armstrong/core/arm_content/tests/video/backends/vimeo.py @@ -1,3 +1,4 @@ +import fudge from ..._utils import * from ....fields.video import EmbeddedVideo diff --git a/armstrong/core/arm_content/tests/video/backends/youtube.py b/armstrong/core/arm_content/tests/video/backends/youtube.py index d7384ba..2856aef 100644 --- a/armstrong/core/arm_content/tests/video/backends/youtube.py +++ b/armstrong/core/arm_content/tests/video/backends/youtube.py @@ -1,3 +1,4 @@ +import fudge from ..._utils import * from ....fields.video import EmbeddedVideo diff --git a/fabfile.py b/fabfile.py index d0d8e98..84d4c07 100644 --- a/fabfile.py +++ b/fabfile.py @@ -10,7 +10,6 @@ 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.staticfiles', - 'armstrong.apps.content', 'armstrong.core.arm_access', 'armstrong.core.arm_content', 'armstrong.core.arm_content.tests.arm_content_support', @@ -24,10 +23,6 @@ 'AUTH_PROFILE_MODULE': 'arm_content_support.SimpleProfile', 'ROOT_URLCONF': 'armstrong.core.arm_content.tests.arm_content_support.urls', 'ARMSTRONG_EXTERNAL_VIDEO_BACKEND': 'armstrong.core.arm_content.video.backends.YouTubeBackend', - 'ARMSTRONG_EXTERNAL_AUDIO_METADATA_BACKEND':'armstrong.apps.audio.backends.id3reader.Id3readerBackend', - 'MEDIA_URL': '/media/', - 'STATIC_ROOT':'./armstrong/core/arm_content/tests/arm_content_support/static/', - 'STATIC_URL':'/static/', 'ARMSTRONG_PRESETS': { 'small_square': {'width': 75, 'height': 75, 'crop': '50%'}, 'qvga': {'width': 320, 'height': 240}, diff --git a/requirements/dev.txt b/requirements/dev.txt index 6914dea..0e95fc2 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,4 +1,3 @@ -armstrong.apps.content armstrong.dev>=1.12.1 -e git://github.com/tswicegood/lettuce.git@fix-port-issues#egg=lettuce -r ./sorl.txt From 881c2151fb3cf7253e7fb5f4363d92d82e8cd67e Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:56:57 -0800 Subject: [PATCH 05/16] Drop Lettuce (as we've been doing with other components and because it breaks testing). --- .../core/arm_content/features/__init__.py | 0 .../features/images_presets.feature | 73 -------------- .../features/images_render.feature | 20 ---- armstrong/core/arm_content/features/steps.py | 97 ------------------- fabfile.py | 1 - requirements/dev.txt | 3 +- 6 files changed, 1 insertion(+), 193 deletions(-) delete mode 100644 armstrong/core/arm_content/features/__init__.py delete mode 100644 armstrong/core/arm_content/features/images_presets.feature delete mode 100644 armstrong/core/arm_content/features/images_render.feature delete mode 100644 armstrong/core/arm_content/features/steps.py diff --git a/armstrong/core/arm_content/features/__init__.py b/armstrong/core/arm_content/features/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/core/arm_content/features/images_presets.feature b/armstrong/core/arm_content/features/images_presets.feature deleted file mode 100644 index 20d7218..0000000 --- a/armstrong/core/arm_content/features/images_presets.feature +++ /dev/null @@ -1,73 +0,0 @@ -Feature: Preset image settings - In order to refer to commonly used image thumbnail settings more easily - I want to be able to use a name to refer to sets of thumbnail settings - - Scenario Outline: Fetch the URL for an image with pre-set settings - Given I have an Image that refers to - And I have the following thumbnail presets: - | name | width | height | crop | - | small | 50 | 50 | 50% | - | sidebar | 300 | | 50% | - When I ask for each preset thumbnail for the image - Then each thumbnail has the specified settings - - Examples: - | path | - | a.png | - | test.jpg | - | animated_meme.gif | - | cute-kitten.jpeg | - - - Scenario Outline: Basic defaults - Given I have an Image that refers to - And I have a default preset quality of 100 - And I have the following thumbnail presets: - | name | width | height | crop | - | small | 50 | 50 | 50% | - | sidebar | 300 | | 50% | - When I ask for each preset thumbnail for the image - Then each thumbnail has the specified settings - And each thumbnail has a quality of 100 - - Examples: - | path | - | a.png | - | test.jpg | - | animated_meme.gif | - | cute-kitten.jpeg | - - Scenario Outline: Override a default - Given I have an Image that refers to - And I have a default preset quality of 100 - And I have the following thumbnail presets: - | name | width | height | crop | quality | - | small | 50 | 50 | 50% | | - | small_low_quality | 50 | 50 | 50% | 25 | - | sidebar | 300 | | 50% | | - When I ask for each preset thumbnail for the image - Then each thumbnail has the specified settings - And the thumbnails without specified quality settings have a quality of 100 - - Examples: - | path | - | a.png | - | test.jpg | - | animated_meme.gif | - | cute-kitten.jpeg | - - Scenario Outline: Fetch the original image - Given I have an Image that refers to - And I have the following thumbnail presets: - | name | width | height | crop | - | small | 50 | 50 | 50% | - | sidebar | 300 | | 50% | - When I ask for the original thumbnail for the image - Then the returned thumbnail is the original image - - Examples: - | path | - | a.png | - | test.jpg | - | animated_meme.gif | - | cute-kitten.jpeg | diff --git a/armstrong/core/arm_content/features/images_render.feature b/armstrong/core/arm_content/features/images_render.feature deleted file mode 100644 index 7d2b2db..0000000 --- a/armstrong/core/arm_content/features/images_render.feature +++ /dev/null @@ -1,20 +0,0 @@ -Feature: Images can render themselves - In order to easily render the visual representations of various content - types from templates - I want to be able to call a method to render a thumbnail - - Scenario Outline: Render a thumbnail - Given I have an Image that refers to - And I have the following thumbnail presets: - | name | width | height | crop | - | small | 50 | 50 | 50% | - | sidebar | 300 | | 50% | - When I render its small thumbnail - Then I see an IMG tag - - Examples: - | path | - | a.png | - | test.jpg | - | animated_meme.gif | - | cute-kitten.jpeg | diff --git a/armstrong/core/arm_content/features/steps.py b/armstrong/core/arm_content/features/steps.py deleted file mode 100644 index c327019..0000000 --- a/armstrong/core/arm_content/features/steps.py +++ /dev/null @@ -1,97 +0,0 @@ -from copy import deepcopy - -from django.conf import settings -import fudge -import fudge.patcher -from lettuce import * -from sorl.thumbnail.base import ThumbnailBackend - -from armstrong.core.arm_content.images.sorl import get_preset_thumbnail, dimensions -from armstrong.core.arm_content.tests.arm_content_support.models import SorlImage - - -def get_thumbnail_mock(self, file_, dimensions, **kwargs): - thumbnail = deepcopy(file_) - thumbnail.storage = file_.storage # This doesn't copy over for some reason. - thumbnail._kwargs = kwargs - thumbnail._kwargs['dimensions'] = dimensions - return thumbnail - -@before.each_scenario -def initialize_world(scenario): - world.presets = None - world.defaults = None - -@step(u'Given I have an Image that refers to (.*)') -def given_i_have_an_image_that_refers_to_path(step, path): - world.image = SorlImage(image=path) - -@step(u'And I have the following thumbnail presets:') -def and_i_have_the_following_thumbnail_presets(step): - world.presets = {} - for hash in step.hashes: - name = hash.pop('name') - # Empty columns should be treated as completely omitted. - for key, value in hash.items(): - if not value: - del hash[key] - world.presets[name] = hash - -@step(u'When I ask for each preset thumbnail for the image') -@fudge.patcher.with_patched_object(ThumbnailBackend, 'get_thumbnail', get_thumbnail_mock) -def when_i_ask_for_each_preset_thumbnail_for_the_image(step): - world.thumbnails = dict( - (preset, get_preset_thumbnail(world.image.image, preset, - presets=world.presets, defaults=world.defaults)) - for preset in world.presets) - -@step(u'When I ask for the (.*) thumbnail for the image') -@fudge.patcher.with_patched_object(ThumbnailBackend, 'get_thumbnail', get_thumbnail_mock) -def when_i_ask_for_a_preset_thumbnail_for_the_image(step, preset_label): - world.thumbnail = get_preset_thumbnail(world.image.image, preset_label, - presets=world.presets, defaults=world.defaults) - -@step(u'Then the returned thumbnail is the original image') -def then_the_returned_thumbnail_is_the_original_image(step): - assert world.thumbnail.name == world.image.image.name - -@step(u'Then each thumbnail has the specified settings') -def then_each_thumbnail_has_the_specified_settings(step): - for preset_label, preset in world.presets.items(): - preset = preset.copy() - thumbnail = world.thumbnails[preset_label] - - # Use the arguments passed to sorl's get_thumbnail as an approximation of - # getting a thumbnail returned with those settings. - args = thumbnail._kwargs - assert args['dimensions'] == dimensions(preset.get('width'), preset.get('height')) - preset.pop('height', None), preset.pop('width', None) - for key, value in preset.items(): - assert args[key] == value - -@step(u'And I have a default preset quality of 100') -def and_i_have_a_default_preset_quality_of_100(step): - world.defaults = world.defaults or {} - world.defaults['quality'] = 100 - -@step(u'And each thumbnail has a quality of 100') -def and_each_thumbnail_has_a_quality_of_100(step): - for thumbnail in world.thumbnails.values(): - assert thumbnail._kwargs['quality'] == 100 - -@step(u'And the thumbnails without specified quality settings have a quality of 100') -def and_the_thumbnails_without_specified_quality_settings_have_a_quality_of_100(step): - for preset_label, preset in world.presets.items(): - thumbnail = world.thumbnails[preset_label] - if 'quality' not in preset: - assert thumbnail._kwargs['quality'] == 100 - -@step(u'When I render its (\w+) thumbnail') -@fudge.patcher.with_patched_object(ThumbnailBackend, 'get_thumbnail', get_thumbnail_mock) -def when_i_render_its_thumbnail(step, preset_label): - world.rendered = world.image.render_visual(preset_label, presets=world.presets, - defaults=world.defaults) - -@step(u'Then I see an IMG tag') -def then_i_see_an_img_tag(step): - assert world.rendered.startswith('=1.12.1 --e git://github.com/tswicegood/lettuce.git@fix-port-issues#egg=lettuce +armstrong.dev>=1.12.1,<2.0 -r ./sorl.txt From f292e8a7f95810b9ec5e47fa3bd9cecff364192e Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:41:45 -0800 Subject: [PATCH 06/16] Update gitignore --- .gitignore | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e8e365d..5fc7064 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,11 @@ *.pyc *~ *.swp -coverage/* -build/* +*.egg-info +.tox/ +coverage*/ +build/ docs/_build MANIFEST dist/ -audio/* mydatabase - From ac6a076468cd666b69899ad2ff73eea13b55d771 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:46:31 -0800 Subject: [PATCH 07/16] Readme and informational updates. --- README.rst | 39 ++++++++++++---------------- armstrong/core/arm_content/models.py | 8 +++--- setup.py | 2 +- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/README.rst b/README.rst index f09a8f4..81dc066 100644 --- a/README.rst +++ b/README.rst @@ -11,45 +11,40 @@ foundation that the rest of the Armstrong content types are built off of. For more information, please see the `full documentation`_. .. change this link to point to docs inside docs.armstrongcms.org once its done -.. _full documentation: http://armstrong.github.com/armstrong.core.arm_content/ +.. _full documentation: http://armstrong.github.io/armstrong.core.arm_content/ + Installation & Configuration ---------------------------- -You can install the latest release of ``armstrong.core.arm_content`` using -`pip`_: - -:: - - pip install armstrong.core.arm_content - -You don't need to add ``armstrong.core.arm_content`` to your installed apps -unless you want to use the include template tags. You can add it like this: - -:: +#. ``pip install armstrong.core.arm_content`` - INSTALLED_APPS += ["armstrong.core.arm_content", ] +#. Add ``taggit`` to your ``INSTALLED_APPS`` -Note that you do not need to run ``syncdb`` or ``migrate`` after installing -``armstrong.core.arm_content`` as it does not have any models. +*Note:* You do not need to run ``syncdb`` or ``migrate`` after installing +because this component does not have any concrete models. For the same reason, +you do not need to add this to INSTALLED_APPS. -.. _pip: http://www.pip-installer.org/ +Optional Settings: +"""""""""""""""""" +* Add ``armstrong.core.arm_content`` to your ``INSTALLED_APPS`` if you want + to use the included template tags. State of Project ---------------- Armstrong is an open-source news platform that is freely available to any -organization. It is the result of a collaboration between the `Texas Tribune`_ -and `Bay Citizen`_, and a grant from the `John S. and James L. Knight -Foundation`_. +organization. It is the result of a collaboration between the `Texas Tribune`_ +and `The Center for Investigative Reporting`_ and a grant from the +`John S. and James L. Knight Foundation`_. To follow development, be sure to join the `Google Group`_. -``armstrong.core.arm_content`` is part of the `Armstrong`_ project. You're +``armstrong.core.arm_content`` is part of the `Armstrong`_ project. You're probably looking for that. .. _Armstrong: http://www.armstrongcms.org/ -.. _Bay Citizen: http://www.baycitizen.org/ +.. _The Center for Investigative Reporting: http://cironline.org/ .. _John S. and James L. Knight Foundation: http://www.knightfoundation.org/ .. _Texas Tribune: http://www.texastribune.org/ .. _Google Group: http://groups.google.com/group/armstrongcms @@ -57,7 +52,7 @@ probably looking for that. License ------- -Copyright 2011-2012 Bay Citizen and Texas Tribune +Copyright 2011-2014 Texas Tribune and The Center for Investigative Reporting Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/armstrong/core/arm_content/models.py b/armstrong/core/arm_content/models.py index cfec302..eb464ce 100644 --- a/armstrong/core/arm_content/models.py +++ b/armstrong/core/arm_content/models.py @@ -15,18 +15,16 @@ class ContentBase(AuthorsMixin, PublicationMixin, AccessMixin, models.Model): """ The base class providing the basic "armstrong" behavior for a model. - This is provided as a way to handle cross-model querying. For example, you + This is provided as a way to handle cross-model querying. For example, you can use this to query across Article and Video models assuming they both extend from a concrete implementation of this class. - This is *not* a concrete implementation. This is to avoid having any - tables created that are not needed. `armstrong.apps.content`_ provides a + This is *not* a concrete implementation. This is to avoid having any + tables created that are not needed. `armstrong.apps.content` provides a concrete implementation of this if you want to use it without defining your own base Content model. - .. _armstrong.apps.content: http://github.com/armstrongcms/armstrong.apps.content """ - title = models.CharField(max_length=255) summary = models.TextField() # TODO: Increase max length for SlugField (see Issue #43) diff --git a/setup.py b/setup.py index 5afdb7e..4bd3009 100644 --- a/setup.py +++ b/setup.py @@ -79,7 +79,7 @@ def build_package(dirpath, dirnames, filenames): in os.walk(info["name"].replace(".", "/"))] setup_kwargs = { - "author": "Bay Citizen & Texas Tribune", + "author": "Texas Tribune & The Center for Investigative Reporting", "author_email": "dev@armstrongcms.org", "url": "http://github.com/armstrong/%s/" % info["name"], "packages": packages, From f8a631891622147f53306243bbcc23c87e3156a2 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 16:53:18 -0800 Subject: [PATCH 08/16] Requirement updates for Sorl. - Sorl is already required in setup.py so we don't need it in dev.txt - Document that an imaging library is necessary for Sorl features. (We aren't testing anything that requires PIL so it's safe to remove that dev requirement.) --- README.rst | 20 ++++++++++++++++---- package.json | 2 +- requirements/dev.txt | 1 - requirements/sorl.txt | 2 -- 4 files changed, 17 insertions(+), 8 deletions(-) delete mode 100644 requirements/sorl.txt diff --git a/README.rst b/README.rst index 81dc066..e64d7c9 100644 --- a/README.rst +++ b/README.rst @@ -24,11 +24,23 @@ Installation & Configuration because this component does not have any concrete models. For the same reason, you do not need to add this to INSTALLED_APPS. -Optional Settings: -"""""""""""""""""" +Optional Settings & Requirements: +""""""""""""""""""""""""""""""""" + +To use the Sorl features, like ``SorlThumbnailMixin``, you'll need two things: + #. Add ``sorl.thumbnail`` to your ``INSTALLED_APPS`` + + #. Install an imaging library. Sorl supports several and you'll need one + mentioned in their `docs`_. + +To use the included template tags: + #. Add ``armstrong.core.arm_content`` to your ``INSTALLED_APPS`` + + #. Follow the above directions to install Sorl. + + +.. _docs: http://sorl-thumbnail.readthedocs.org/en/latest/requirements.html#image-library -* Add ``armstrong.core.arm_content`` to your ``INSTALLED_APPS`` if you want - to use the included template tags. State of Project ---------------- diff --git a/package.json b/package.json index 8c66f49..0ec1dd8 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "django-model-utils==0.6.0", "django-reversion==1.4", "django-taggit==0.9.3", - "sorl-thumbnail==11.05.2", + "sorl-thumbnail>=11.05.2", "armstrong.core.arm_sections>=1.5.3,<2.0", "armstrong.core.arm_access>=1.0.6,<2.0", "armstrong.utils.backends>=1.0.0,<2.0" diff --git a/requirements/dev.txt b/requirements/dev.txt index 3b74637..5fc59fe 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,2 +1 @@ armstrong.dev>=1.12.1,<2.0 --r ./sorl.txt diff --git a/requirements/sorl.txt b/requirements/sorl.txt deleted file mode 100644 index 57a3f55..0000000 --- a/requirements/sorl.txt +++ /dev/null @@ -1,2 +0,0 @@ -PIL -sorl-thumbnail From 4616f9f718aba7713ea9148252e9d73bd68f6f8f Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Mon, 13 Jan 2014 17:00:49 -0800 Subject: [PATCH 09/16] Requirements - Remove fixed Django requirement. Remove Reversion since it isn't used. Update model-utils to minimum version for Django 1.5 and max version for Django 1.3. --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index 0ec1dd8..6dac03e 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,7 @@ "version": "1.4.0alpha.0", "description": "A library for building news sites with multiple content types", "install_requires": [ - "Django==1.3.1,<=1.4.5", - "django-model-utils==0.6.0", - "django-reversion==1.4", + "django-model-utils>=1.2.0,<1.3.1", "django-taggit==0.9.3", "sorl-thumbnail>=11.05.2", "armstrong.core.arm_sections>=1.5.3,<2.0", From 5111b317a67bd9ded01b7cfa3dad01915b379000 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Tue, 21 Jan 2014 19:19:21 -0800 Subject: [PATCH 10/16] Django 1.4+ URL imports --- armstrong/core/arm_content/tests/arm_content_support/urls.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/armstrong/core/arm_content/tests/arm_content_support/urls.py b/armstrong/core/arm_content/tests/arm_content_support/urls.py index 0c5115e..7cc78d7 100644 --- a/armstrong/core/arm_content/tests/arm_content_support/urls.py +++ b/armstrong/core/arm_content/tests/arm_content_support/urls.py @@ -1,5 +1,8 @@ -from django.conf.urls.defaults import patterns, include, url from django.contrib import admin +try: + from django.conf.urls import patterns, include, url +except ImportError: # Django 1.3 + from django.conf.urls.defaults import patterns, include, url admin.autodiscover() From 1eaef570d830199f39883a7f0d2c6022a3423e36 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Tue, 21 Jan 2014 19:28:40 -0800 Subject: [PATCH 11/16] TravisCI - test on Python 2.6, use South, update Django versions --- .travis.yml | 11 +++++++---- .travis_setup | 4 ---- requirements/dev.txt | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) delete mode 100755 .travis_setup diff --git a/.travis.yml b/.travis.yml index f779d71..4f7852e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,14 @@ language: python python: - - 2.7 + - 2.6 + - 2.7 install: - - ./.travis_setup + - pip install -r requirements/dev.txt + - pip install . + - pip install Django==$DJANGO_VERSION env: - - SKIP_COVERAGE=1 SKIP_INSTALL=1 DJANGO_VERSION=1.4.5 - - SKIP_COVERAGE=1 SKIP_INSTALL=1 DJANGO_VERSION=1.3.1 + - SKIP_COVERAGE=1 SKIP_INSTALL=1 DJANGO_VERSION=1.4.10 + - SKIP_COVERAGE=1 SKIP_INSTALL=1 DJANGO_VERSION=1.3.7 script: fab test notifications: email: false diff --git a/.travis_setup b/.travis_setup deleted file mode 100755 index dfd3e2a..0000000 --- a/.travis_setup +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -pip install -i http://armstrong.github.com/pypi.armstrongcms.org/index/ -r requirements/dev.txt -pip install . -pip install Django==$DJANGO_VERSION diff --git a/requirements/dev.txt b/requirements/dev.txt index 5fc59fe..910781a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1 +1,2 @@ armstrong.dev>=1.12.1,<2.0 +south<1.0 From d6f8e026ac7cb70134837596bbc89ab18093b616 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Tue, 21 Jan 2014 19:31:08 -0800 Subject: [PATCH 12/16] More test cleanup and fix a circular import issue on Python 2.6 with Django 1.4. Use standard method to override settings. Fixing: `Exception RuntimeError: 'maximum recursion depth exceeded while calling a Python object' in ignored` --- .../core/arm_content/tests/fields/__init__.py | 7 --- .../core/arm_content/tests/fields/video.py | 43 ++++++++----------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/armstrong/core/arm_content/tests/fields/__init__.py b/armstrong/core/arm_content/tests/fields/__init__.py index 3499dcb..b48c62c 100644 --- a/armstrong/core/arm_content/tests/fields/__init__.py +++ b/armstrong/core/arm_content/tests/fields/__init__.py @@ -1,9 +1,2 @@ -from django.db import models -import fudge - -from .._utils import * - -from ... import fields - from .authors import * from .video import * diff --git a/armstrong/core/arm_content/tests/fields/video.py b/armstrong/core/arm_content/tests/fields/video.py index f8bd27a..69b15fc 100644 --- a/armstrong/core/arm_content/tests/fields/video.py +++ b/armstrong/core/arm_content/tests/fields/video.py @@ -1,5 +1,4 @@ -from copy import copy -from django.db import models +import random import fudge from django.utils import unittest @@ -8,12 +7,11 @@ except ImportError: south = False -from .._utils import * +from .._utils import ArmContentTestCase from ..arm_content_support.models import SimpleVideoModel from ...fields.video import EmbeddedVideo -from ... import fields -from ...video import backends +from ...fields import EmbeddedVideoField class ExampleBackend(object): @@ -49,24 +47,23 @@ def test_sets_source_to_EmbeddedVideo(self): def test_stores_and_retrieves_from_field_from_database(self): random_id = "abcdef%d" % random.randint(100, 200) video = SimpleVideoModel.objects.create( - source="http://youtube.com/watch?v=%s" % random_id) - id = video.pk - self.assertEqual(random_id, - SimpleVideoModel.objects.get(pk=id).source.id) + source="http://youtube.com/watch?v=%s" % random_id) + result = SimpleVideoModel.objects.get(pk=video.pk) + self.assertEqual(random_id, result.source.id) def test_field_has_basic_label_by_default(self): - field = fields.EmbeddedVideoField() + field = EmbeddedVideoField() self.assertEqual(field.formfield().label, u"Embedded Video URL") def test_field_can_have_custom_label_if_kwarg_provided(self): - field = fields.EmbeddedVideoField() + field = EmbeddedVideoField() random_label = "Some random label: %d" % random.randint(100, 200) actual_field = field.formfield(label=random_label).label self.assertEqual(actual_field, random_label) @unittest.skipIf(south is False, "south not installed") def test_returns_expected_south_triple(self): - field = fields.EmbeddedVideoField() + field = EmbeddedVideoField() expected = ( "%s.%s" % (field.__class__.__module__, field.__class__.__name__), @@ -80,10 +77,6 @@ class EmbeddedVideoTestCase(ArmContentTestCase): def setUp(self): fudge.clear_calls() fudge.clear_expectations() - self.orig_backend_settings = copy(backends.backend.settings) - - def tearDown(self): - backends.backend.settings = copy(self.orig_backend_settings) def test_id_is_None_by_default(self): v = EmbeddedVideo() @@ -111,21 +104,21 @@ def test_can_take_an_EmbeddedVideo_object_as_a_type(self): def test_uses_provided_backend(self): random_url = "foobar-%d" % random.randint(100, 200) random_id = "%d" % random.randint(100, 200) - v = EmbeddedVideo("%s:%s" % (random_url, random_id), - backend=ExampleBackend()) + v = EmbeddedVideo( + "%s:%s" % (random_url, random_id), + backend=ExampleBackend()) self.assertEqual(random_id, v.id) self.assertEqual(random_url, v.url) self.assertEqual("Example", v.type) def test_uses_configured_backend_if_nothing_is_provided(self): - settings = fudge.Fake() - backend = "armstrong.core.arm_content.tests.fields.ExampleBackend" - settings.has_attr(ARMSTRONG_EXTERNAL_VIDEO_BACKEND=backend) - backends.backend.settings = settings - random_url = "foobar-%d" % random.randint(100, 200) random_id = "%d" % random.randint(100, 200) - v = EmbeddedVideo("%s:%s" % (random_url, random_id)) + backend = "armstrong.core.arm_content.tests.fields.ExampleBackend" + + with self.settings(ARMSTRONG_EXTERNAL_VIDEO_BACKEND=backend): + v = EmbeddedVideo("%s:%s" % (random_url, random_id)) + self.assertEqual(random_id, v.id) self.assertEqual(random_url, v.url) @@ -144,7 +137,7 @@ def test_embed_dispatches_to_backend_and_returns_result(self): def test_embed_dispatches_kwargs_to_backend(self): kwargs = dict( - [("key-%d" % a, a) for a in range(random.randint(1, 10))]) + [("key-%d" % a, a) for a in range(random.randint(1, 10))]) backend = fudge.Fake() backend.provides("prepare") video = EmbeddedVideo("foo/bar", backend=backend) From 9a4c17e6c138d3795fb9786922cc63863a5d6d03 Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Tue, 21 Jan 2014 20:13:05 -0800 Subject: [PATCH 13/16] Fix tests in Django 1.4/proper cleanup. Should have been part of 78fd9c83da1682a96000ab2cc4c5b10e7ad082b2. --- fabfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fabfile.py b/fabfile.py index 2235f40..74270a6 100644 --- a/fabfile.py +++ b/fabfile.py @@ -9,7 +9,6 @@ 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', - 'django.contrib.staticfiles', 'armstrong.core.arm_access', 'armstrong.core.arm_content', 'armstrong.core.arm_content.tests.arm_content_support', From a57507bec16c5b83fdbda1761249c6b14855b32c Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Sat, 25 Jan 2014 16:13:48 -0800 Subject: [PATCH 14/16] Tests - tidy imports and remove an unused function. --- armstrong/core/arm_content/tests/_utils.py | 8 +------- armstrong/core/arm_content/tests/models/__init__.py | 5 ++++- armstrong/core/arm_content/tests/video/backends/vimeo.py | 4 ++-- .../core/arm_content/tests/video/backends/youtube.py | 3 ++- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/armstrong/core/arm_content/tests/_utils.py b/armstrong/core/arm_content/tests/_utils.py index 6c7cc3a..d35497a 100644 --- a/armstrong/core/arm_content/tests/_utils.py +++ b/armstrong/core/arm_content/tests/_utils.py @@ -1,17 +1,11 @@ from armstrong.dev.tests.utils import ArmstrongTestCase -from armstrong.dev.tests.utils.concrete import * -from armstrong.dev.tests.utils.users import * +from armstrong.dev.tests.utils.users import generate_random_staff_users class ArmContentTestCase(ArmstrongTestCase): pass -def add_n_users_to_authors(authors, *users): - for user in users: - authors.users.add(user) - - def add_profile_to(profile_class, *users): for user in users: profile = profile_class.objects.create(user=user) diff --git a/armstrong/core/arm_content/tests/models/__init__.py b/armstrong/core/arm_content/tests/models/__init__.py index 6fdeba7..052c839 100644 --- a/armstrong/core/arm_content/tests/models/__init__.py +++ b/armstrong/core/arm_content/tests/models/__init__.py @@ -1,13 +1,16 @@ -from .._utils import * +import random import datetime from django.db import models from taggit.managers import TaggableManager +from armstrong.dev.tests.utils.concrete import ( + concrete, create_concrete_table, destroy_concrete_table) from armstrong.core.arm_sections.models import Section from ..arm_content_support.models import ConcreteArticle from ..arm_content_support.models import ConcreteCommentary from ..arm_content_support.models import ConcreteContent from ...models import ContentBase +from .._utils import ArmContentTestCase now = datetime.datetime.now diff --git a/armstrong/core/arm_content/tests/video/backends/vimeo.py b/armstrong/core/arm_content/tests/video/backends/vimeo.py index 2ec61f1..8280f91 100644 --- a/armstrong/core/arm_content/tests/video/backends/vimeo.py +++ b/armstrong/core/arm_content/tests/video/backends/vimeo.py @@ -1,9 +1,9 @@ import fudge -from ..._utils import * +import random +from ..._utils import ArmContentTestCase from ....fields.video import EmbeddedVideo from ....video.backends import helpers -from ....video.backends import vimeo from ....video.backends.vimeo import VimeoBackend diff --git a/armstrong/core/arm_content/tests/video/backends/youtube.py b/armstrong/core/arm_content/tests/video/backends/youtube.py index 2856aef..856851b 100644 --- a/armstrong/core/arm_content/tests/video/backends/youtube.py +++ b/armstrong/core/arm_content/tests/video/backends/youtube.py @@ -1,5 +1,6 @@ import fudge -from ..._utils import * +import random +from ..._utils import ArmContentTestCase from ....fields.video import EmbeddedVideo from ....video.backends import helpers From 055df863ec0e6a50ebaf528cc3a227f78b46052f Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Sat, 25 Jan 2014 16:25:22 -0800 Subject: [PATCH 15/16] Tests - simplify and pep8 publication test. --- .../arm_content/tests/mixins/publication.py | 35 +++++++------------ 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/armstrong/core/arm_content/tests/mixins/publication.py b/armstrong/core/arm_content/tests/mixins/publication.py index 9326b86..5f5c934 100644 --- a/armstrong/core/arm_content/tests/mixins/publication.py +++ b/armstrong/core/arm_content/tests/mixins/publication.py @@ -1,40 +1,29 @@ -# coding=utf-8 -from django.db import models -from .._utils import * +from .._utils import ArmContentTestCase -from ..arm_content_support.models import ConcreteArticle -from ...models import ContentBase +from ..arm_content_support.models import ConcreteArticle, ConcreteContent import datetime + class PublicationManagerTestCase(ArmContentTestCase): def setUp(self): self.published = ConcreteArticle.objects.create( - title="Published", - pub_date=datetime.datetime.now()-datetime.timedelta(days=1), - pub_status='P' - ) + title="Published", + pub_date=datetime.datetime.now()-datetime.timedelta(days=1), + pub_status='P') self.draft_art = ConcreteArticle.objects.create( - title="Not Published", - pub_date=datetime.datetime.now()-datetime.timedelta(days=1), - pub_status='D' - ) + title="Not Published", + pub_date=datetime.datetime.now()-datetime.timedelta(days=1), + pub_status='D') self.scheduled = ConcreteArticle.objects.create( - title="Future Published", - pub_date=datetime.datetime.now()+datetime.timedelta(days=1), - pub_status='P' - ) + title="Future Published", + pub_date=datetime.datetime.now()+datetime.timedelta(days=1), + pub_status='P') def test_ContentBase_subclasses_have_published_manager(self): - class ConcreteContent(ContentBase): - pass self.assertTrue(hasattr(ConcreteContent, 'published')) def test_subclasses_of_concrete_classes_have_published_manager(self): - class ConcreteContent(ContentBase): - pass - class ConcreteArticle(ConcreteContent): - pass self.assertTrue(hasattr(ConcreteArticle, 'published')) def test_published_manager_only_pulls_published_content(self): From 895e67f7c685c0a06445357115e4926d1d55690f Mon Sep 17 00:00:00 2001 From: Jon Cotton Date: Sat, 25 Jan 2014 16:38:49 -0800 Subject: [PATCH 16/16] Tests - simplify ContentBase testing. Using the support models means we don't need magic to trick Django into making concrete model instances. This also means we can drop the concrete infrastructure in ArmDev. --- .../core/arm_content/tests/models/__init__.py | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/armstrong/core/arm_content/tests/models/__init__.py b/armstrong/core/arm_content/tests/models/__init__.py index 052c839..ed8c5a0 100644 --- a/armstrong/core/arm_content/tests/models/__init__.py +++ b/armstrong/core/arm_content/tests/models/__init__.py @@ -3,45 +3,33 @@ from django.db import models from taggit.managers import TaggableManager -from armstrong.dev.tests.utils.concrete import ( - concrete, create_concrete_table, destroy_concrete_table) from armstrong.core.arm_sections.models import Section -from ..arm_content_support.models import ConcreteArticle -from ..arm_content_support.models import ConcreteCommentary -from ..arm_content_support.models import ConcreteContent -from ...models import ContentBase +from ..arm_content_support.models import ( + ConcreteArticle, ConcreteCommentary, ConcreteContent) from .._utils import ArmContentTestCase now = datetime.datetime.now class ContentBaseTestCase(ArmContentTestCase): - @create_concrete_table - def setUp(self): - self.model = concrete(ContentBase) - - @destroy_concrete_table - def tearDown(self): - pass - def test_has_a_title(self): - self.assertModelHasField(self.model(), "title", models.CharField) + self.assertModelHasField(ConcreteContent(), "title", models.CharField) def test_has_summary(self): - self.assertModelHasField(self.model(), "summary", models.TextField) + self.assertModelHasField(ConcreteContent(), "summary", models.TextField) def test_has_slug(self): - self.assertModelHasField(self.model(), "slug", models.SlugField) + self.assertModelHasField(ConcreteContent(), "slug", models.SlugField) def test_has_tags(self): # Must create a full model here so we have a pk for tags to be # associated with - model = self.model.objects.create(pub_date=now(), + model = ConcreteContent.objects.create(pub_date=now(), pub_status="Published") self.assertModelHasField(model, "tags", TaggableManager) def test_has_sections(self): - model = self.model.objects.create(pub_date=now(), + model = ConcreteContent.objects.create(pub_date=now(), pub_status="Published") self.assertRelatedTo(model, "sections", Section, many=True)