add initial tests on pages and cells
This commit is contained in:
parent
3600e857cc
commit
a584bd720c
8
README
8
README
|
@ -91,6 +91,14 @@ still be referenced manually in a template file. This is useful to avoid
|
|||
overwhelming the UI with blurps used in non-editable parts of the pages.
|
||||
|
||||
|
||||
Tests
|
||||
-----
|
||||
|
||||
Unit tests are written using py.test, and its pytest-django support library.
|
||||
|
||||
DJANGO_SETTINGS_MODULE=combo.settings py.test
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
import pytest
|
||||
|
||||
from combo.data.models import Page, CellBase, TextCell
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def test_cell_reference():
|
||||
page = Page()
|
||||
page.save()
|
||||
|
||||
cell = TextCell()
|
||||
cell.page = page
|
||||
cell.text = 'foobar'
|
||||
cell.order = 0
|
||||
cell.save()
|
||||
|
||||
assert CellBase.get_cell(cell.get_reference()) == cell
|
|
@ -0,0 +1,114 @@
|
|||
import pytest
|
||||
|
||||
from django.contrib.auth.models import User, Group
|
||||
from combo.data.models import Page
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
def test_page_order():
|
||||
page = Page()
|
||||
page.title = 'foo'
|
||||
page.save()
|
||||
page2 = Page()
|
||||
page2.title = 'bar'
|
||||
page2.save()
|
||||
|
||||
assert Page.objects.get(id=page.id).order < Page.objects.get(id=page2.id)
|
||||
|
||||
def test_page_url():
|
||||
page = Page()
|
||||
page.slug = 'foo'
|
||||
page.save()
|
||||
assert page.get_online_url() == '/foo'
|
||||
page2 = Page()
|
||||
page2.slug = 'bar'
|
||||
page2.parent = page
|
||||
assert page2.get_online_url() == '/foo/bar'
|
||||
|
||||
def test_page_of_level():
|
||||
parent_page = None
|
||||
for i in range(10):
|
||||
page = Page()
|
||||
page.slug = 'level%d' % i
|
||||
if parent_page:
|
||||
page.parent = parent_page
|
||||
page.save()
|
||||
parent_page = page
|
||||
|
||||
assert page.get_page_of_level(2).slug == 'level2'
|
||||
assert page.get_page_of_level(4).slug == 'level4'
|
||||
assert page.get_page_of_level(14) is None
|
||||
|
||||
def test_page_siblings():
|
||||
Page.objects.all().delete()
|
||||
page = Page()
|
||||
page.slug = 'foo'
|
||||
page.save()
|
||||
page2 = Page()
|
||||
page2.slug = 'bar'
|
||||
page2.parent = page
|
||||
page2.save()
|
||||
page3 = Page()
|
||||
page3.slug = 'baz'
|
||||
page3.parent = page
|
||||
page3.save()
|
||||
assert [x.slug for x in page3.get_siblings()] == ['bar', 'baz']
|
||||
|
||||
assert page.has_children()
|
||||
assert not page2.has_children()
|
||||
|
||||
def test_flat_hierarchy():
|
||||
Page.objects.all().delete()
|
||||
page = Page()
|
||||
page.slug = 'foo'
|
||||
page.save()
|
||||
page2 = Page()
|
||||
page2.slug = 'bar'
|
||||
page2.parent = page
|
||||
page2.save()
|
||||
page3 = Page()
|
||||
page3.slug = 'baz'
|
||||
page3.parent = page
|
||||
page3.save()
|
||||
|
||||
pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all())
|
||||
assert [x.slug for x in pages] == ['foo', 'bar', 'baz']
|
||||
|
||||
page.order = 17
|
||||
page.save()
|
||||
pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all())
|
||||
assert [x.slug for x in pages] == ['foo', 'bar', 'baz']
|
||||
|
||||
page2.parent = None
|
||||
page2.save()
|
||||
pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all())
|
||||
assert [x.slug for x in pages] == ['bar', 'foo', 'baz']
|
||||
|
||||
page.parent = page2
|
||||
page.save()
|
||||
pages = Page.get_as_reordered_flat_hierarchy(Page.objects.all())
|
||||
assert [x.slug for x in pages] == ['bar', 'foo', 'baz']
|
||||
|
||||
def test_page_visibility():
|
||||
page = Page()
|
||||
assert page.is_visible()
|
||||
|
||||
page.public = False
|
||||
page.save()
|
||||
assert not page.is_visible()
|
||||
|
||||
group = Group(name='foobar')
|
||||
group.save()
|
||||
user1 = User(username='foo')
|
||||
user1.save()
|
||||
user1.groups = [group]
|
||||
user2 = User(username='bar')
|
||||
user2.save()
|
||||
|
||||
assert page.is_visible(user1)
|
||||
assert page.is_visible(user2)
|
||||
|
||||
page.groups = [group]
|
||||
assert not page.is_visible()
|
||||
assert page.is_visible(user1)
|
||||
assert not page.is_visible(user2)
|
Loading…
Reference in New Issue