mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-11 00:33:17 +00:00
Add unit tests for usage feature
This commit is contained in:
parent
ae0d26e71b
commit
4824286d31
6 changed files with 198 additions and 31 deletions
19
wagtail/tests/fixtures/test.json
vendored
19
wagtail/tests/fixtures/test.json
vendored
|
|
@ -562,6 +562,14 @@
|
|||
"submit_time": "2014-01-01T12:00:00.000Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "tests.AdvertPlacement",
|
||||
"fields": {
|
||||
"page": 2,
|
||||
"advert": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "tests.advert",
|
||||
|
|
@ -578,17 +586,6 @@
|
|||
"created_at": "2014-01-01T12:00:00.000Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "wagtailimages.Image",
|
||||
"fields": {
|
||||
"title": "test image",
|
||||
"created_at": "2014-01-01T12:00:00.000Z",
|
||||
"width": 0,
|
||||
"height": 0
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "wagtailcore.pageviewrestriction",
|
||||
|
|
|
|||
|
|
@ -273,9 +273,11 @@ FormPage.content_panels = [
|
|||
]
|
||||
|
||||
|
||||
# Snippets
|
||||
|
||||
# Snippets
|
||||
class AdvertPlacement(models.Model):
|
||||
page = ParentalKey('wagtailcore.Page', related_name='advert_placements')
|
||||
advert = models.ForeignKey('tests.Advert', related_name='+')
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Advert(models.Model):
|
||||
|
|
|
|||
|
|
@ -3,10 +3,8 @@ from django.core.urlresolvers import reverse
|
|||
from django.core import mail
|
||||
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
from wagtail.tests.models import EventPage, EventPageRelatedLink
|
||||
from wagtail.wagtailcore.models import Page
|
||||
from wagtail.wagtailadmin.tasks import send_email_task
|
||||
from wagtail.wagtaildocs.models import Document
|
||||
|
||||
|
||||
class TestHome(TestCase, WagtailTestUtils):
|
||||
|
|
@ -46,20 +44,3 @@ class TestSendEmailTask(TestCase):
|
|||
self.assertEqual(mail.outbox[0].subject, "Test subject")
|
||||
self.assertEqual(mail.outbox[0].body, "Test content")
|
||||
self.assertEqual(mail.outbox[0].to, ["nobody@email.com"])
|
||||
|
||||
|
||||
class TestUsageCount(TestCase):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def test_unused_document_usage_count(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
self.assertEqual(doc.usage_count, 0)
|
||||
|
||||
def test_used_document_usage_count(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
self.assertEqual(doc.usage_count, 1)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,14 @@ from django.test import TestCase
|
|||
from django.contrib.auth.models import User, Group, Permission
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.files.base import ContentFile
|
||||
from django.test.utils import override_settings
|
||||
|
||||
from wagtail.wagtaildocs import models
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
|
||||
from wagtail.tests.models import EventPage, EventPageRelatedLink
|
||||
from wagtail.wagtaildocs.models import Document
|
||||
|
||||
# TODO: Test serve view
|
||||
|
||||
|
||||
|
|
@ -313,3 +317,103 @@ class TestDocumentFilenameProperties(TestCase):
|
|||
def tearDown(self):
|
||||
self.document.delete()
|
||||
self.extensionless_document.delete()
|
||||
|
||||
|
||||
class TestUsageCount(TestCase, WagtailTestUtils):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def setUp(self):
|
||||
self.login()
|
||||
|
||||
def test_document_usage_count_not_enabled(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
self.assertEqual(doc.usage_count, None)
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_unused_document_usage_count(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
self.assertEqual(doc.usage_count, 0)
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_used_document_usage_count(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
self.assertEqual(doc.usage_count, 1)
|
||||
|
||||
def test_usage_count_does_not_appear(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
response = self.client.get(reverse('wagtaildocs_edit_document',
|
||||
args=(1,)))
|
||||
self.assertNotContains(response, 'Used 1 Time')
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_usage_count_appears(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
response = self.client.get(reverse('wagtaildocs_edit_document',
|
||||
args=(1,)))
|
||||
self.assertContains(response, 'Used 1 Time')
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_usage_count_zero_appears(self):
|
||||
response = self.client.get(reverse('wagtaildocs_edit_document',
|
||||
args=(1,)))
|
||||
self.assertContains(response, 'Used 0 Times')
|
||||
|
||||
|
||||
class TestUsedBy(TestCase, WagtailTestUtils):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def setUp(self):
|
||||
self.login()
|
||||
|
||||
def test_document_used_by_not_enabled(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
self.assertEqual(doc.used_by, [])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_unused_document_used_by(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
self.assertEqual(doc.used_by, [])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_used_document_used_by(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
self.assertEqual(doc.used_by, [page])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_usage_page(self):
|
||||
doc = Document.objects.get(id=1)
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_related_link = EventPageRelatedLink()
|
||||
event_page_related_link.page = page
|
||||
event_page_related_link.link_document = doc
|
||||
event_page_related_link.save()
|
||||
response = self.client.get(reverse('wagtaildocs_document_usage',
|
||||
args=(1,)))
|
||||
self.assertContains(response, 'Christmas')
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_usage_page_no_usage(self):
|
||||
response = self.client.get(reverse('wagtaildocs_document_usage',
|
||||
args=(1,)))
|
||||
# There's no usage so there should be no table rows
|
||||
self.assertRegexpMatches(response.content, '<tbody>(\s|\n)*</tbody>')
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ from mock import MagicMock
|
|||
from django.utils import six
|
||||
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
from django import template
|
||||
from django.contrib.auth.models import User, Group, Permission
|
||||
from django.core.urlresolvers import reverse
|
||||
|
|
@ -17,6 +18,8 @@ from wagtail.wagtailimages.formats import (
|
|||
|
||||
from wagtail.wagtailimages.backends import get_image_backend
|
||||
from wagtail.wagtailimages.backends.pillow import PillowBackend
|
||||
from wagtail.tests.models import EventPage, EventPageCarouselItem
|
||||
|
||||
|
||||
def get_test_image_file():
|
||||
from six import BytesIO
|
||||
|
|
@ -470,3 +473,55 @@ class TestFormat(TestCase):
|
|||
register_image_format(self.format)
|
||||
result = get_image_format('test name')
|
||||
self.assertEqual(result, self.format)
|
||||
|
||||
|
||||
class TestUsageCount(TestCase):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def setUp(self):
|
||||
self.image = Image.objects.create(
|
||||
title="Test image",
|
||||
file=get_test_image_file(),
|
||||
)
|
||||
|
||||
def test_image_usage_count_not_enabled(self):
|
||||
self.assertEqual(self.image.usage_count, None)
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_unused_image_usage_count(self):
|
||||
self.assertEqual(self.image.usage_count, 0)
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_used_image_document_usage_count(self):
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_carousel_item = EventPageCarouselItem()
|
||||
event_page_carousel_item.page = page
|
||||
event_page_carousel_item.image = self.image
|
||||
event_page_carousel_item.save()
|
||||
self.assertEqual(self.image.usage_count, 1)
|
||||
|
||||
|
||||
class TestUsedBy(TestCase):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def setUp(self):
|
||||
self.image = Image.objects.create(
|
||||
title="Test image",
|
||||
file=get_test_image_file(),
|
||||
)
|
||||
|
||||
def test_image_used_by_not_enabled(self):
|
||||
self.assertEqual(self.image.used_by, [])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_unused_image_used_by(self):
|
||||
self.assertEqual(self.image.used_by, [])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_used_image_document_used_by(self):
|
||||
page = EventPage.objects.get(id=4)
|
||||
event_page_carousel_item = EventPageCarouselItem()
|
||||
event_page_carousel_item.page = page
|
||||
event_page_carousel_item.image = self.image
|
||||
event_page_carousel_item.save()
|
||||
self.assertEqual(self.image.used_by, [page])
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ from django.test import TestCase
|
|||
from django.core.urlresolvers import reverse
|
||||
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
from django.test.utils import override_settings
|
||||
from wagtail.tests.models import Advert, AlphaSnippet, ZuluSnippet
|
||||
from wagtail.wagtailsnippets.models import register_snippet, SNIPPET_MODELS
|
||||
|
||||
|
|
@ -9,6 +10,7 @@ from wagtail.wagtailsnippets.views.snippets import (
|
|||
get_snippet_edit_handler
|
||||
)
|
||||
from wagtail.wagtailsnippets.edit_handlers import SnippetChooserPanel
|
||||
from wagtail.wagtailcore.models import Page
|
||||
|
||||
|
||||
class TestSnippetIndexView(TestCase, WagtailTestUtils):
|
||||
|
|
@ -185,3 +187,29 @@ class TestSnippetOrdering(TestCase):
|
|||
# may get registered elsewhere during test
|
||||
self.assertLess(SNIPPET_MODELS.index(AlphaSnippet),
|
||||
SNIPPET_MODELS.index(ZuluSnippet))
|
||||
|
||||
|
||||
class TestUsageCount(TestCase):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def test_snippet_usage_count_not_enabled(self):
|
||||
advert = Advert.objects.get(id=1)
|
||||
self.assertEqual(advert.usage_count(), None)
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_snippet_usage_count(self):
|
||||
advert = Advert.objects.get(id=1)
|
||||
self.assertEqual(advert.usage_count(), 1)
|
||||
|
||||
|
||||
class TestUsedBy(TestCase):
|
||||
fixtures = ['wagtail/tests/fixtures/test.json']
|
||||
|
||||
def test_snippet_used_by_not_enabled(self):
|
||||
advert = Advert.objects.get(id=1)
|
||||
self.assertEqual(advert.used_by(), [])
|
||||
|
||||
@override_settings(USAGE_COUNT=True)
|
||||
def test_snippet_used_by(self):
|
||||
advert = Advert.objects.get(id=1)
|
||||
self.assertEqual(type(advert.used_by()[0]), Page)
|
||||
|
|
|
|||
Loading…
Reference in a new issue